Versio

Database select uitvoeren in functie

Overzicht Reageren

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

24/05/2012 08:54:29
Gesponsorde koppelingen:
 
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

Get Adobe Flash player