Database select uitvoeren in functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris visser

chris visser

19/12/2008 20:44:00
Quote Anchor link
Hey, ik ben bezig met een functie waarmee ik modules die in me database staan kan includen. (Ik weet: het script is niet beveiligt tegen SQL injecties want dat komt later nog). Het probleem ligt bij de SQL select. in een configbestand heb ik een verbinding naar me database gelegt en nu ben ik bezig met die functie. In die functie wil ik een select aanmaken maar dan geeft hij de onderstaande error. Als ik hetzelfde script buiten de functie uitvoer maar wel in hetzelfde bestand dan doet het script het wel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function pageinclude()
{

  #Select preferences from configurationtable
  $sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
  if(!$Smodule = $mysqli->query($sql))
  {

    trigger_error('Fout in query: '.$mysqli->error);    
  }
    
  else
  {    
    if($module = $Smodule->fetch_assoc())
    {

        include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
    }
  }  
}

pageinclude();

?>

foutmelding:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Call to a member function query() on a non-object in


db_connect script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$db = array (
    'host' => 'localhost',
    'user' => 'root',
    'pass' => '',
    'dbname' => 'Database'
);

$mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['dbname']);
if(mysqli_connect_errno())
{
    trigger_error('Fout bij verbinding: '.$mysqli->error);
}


Wat zie ik over het hoofd?
 
PHP hulp

PHP hulp

29/04/2024 01:06:50
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

19/12/2008 22:22:00
Quote Anchor link
Binnen de functie(s) bestaan alleen de variabelen die je meegeeft (Tussen de haakjes) en alles wat je ophaalt via de functie global.

Zet in het begin van je functie even: global $mysqli;

Zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function pageinclude()
{

  global $mysqli;
  #Select preferences from configurationtable
  $sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
  if(!$Smodule = $mysqli->query($sql))
  {

    trigger_error('Fout in query: '.$mysqli->error);    
  }
    
  else
  {    
    if($module = $Smodule->fetch_assoc())
    {

        include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
    }
  }  
}

?>
 
Chris visser

chris visser

19/12/2008 22:29:00
Quote Anchor link
Aha, die zocht ik :D

Ik gebruik al een tijdje phpnuke en het is best wel vreemd dat ik er niet op kwam. Maarja dat verklaart idd waarom ik bij elke functie in phpnuke een global moest toevoegen.

tx
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.