Ik heb aantal weken geleden dit script gemaakt: http://www.phphulp.nl/php/scripts/4/1334/

Ik heb wat kleine dingen veranderd aan dit script en ik heb ipv standaard queries gebruik gemaakt van de PDO 'plugin' van php.

Met standaard programmeren (dus niet OOP) werkt PDO perfect. Maar zo gauw ik dit in mijn class verwacht krijg ik de Error:
"Fatal error: Call to a member function quote() on a non-object in C:\wamp\www\classes\Auth\clsAuthentication.php on line 29"

Mijn script kun je hier vinden: http://rafb.net/p/KC3sGL62.html

Ik heb wel een oplossing, de PDO connection in de constructor zetten, maar dit is ver van praktisch. Volgens mij is extenden ook niet een goede oplossing.
Weet iemand hoe ik dit werkend krijg ?
buiten de klasse. Gewoon een ordinaire saaie functie. Je zou hem in je config file kunnen zetten, op dezelfde plek waar je anders je logingegevens van je db plaatst (ervan uitgaande dat je een php bestand daarvoor gebruikt, niet een ini. In dat geval zou ik hem gewoon in de index.php dumpen)
Wat ik meestal doe: ik heb een object $m_mysql. Ik heb een class waarin ik een aantal mySQL methodes bundel.

$result = $m_mysql->doSql($sql); zorgt er voor dat er een connectie wordt gemaakt, dat de query wordt uitgevoerd, connectie verbroken, result weergegeven. De connectie gegevens zitten in dat object. Overal waar ik mySQL nodig heb binnen een class geef ik dat object $m_mysql mee aan de andere class.

Maar inderdaad, het is ook simpel om je config file gewoon een beetje anders te gebruiken.

ipv.
<?
$db_user = 'root';
$db_pasword = 'huppeldepup';
...
?>

maak je iets als
<?
function getDbConfig()
{
$result = array('root', 'buppeldepup', ...);
return $result;
}
?>

Dan kan je getDbConfig() overal in je site gebruiken.

Reageren