axedMedlem sedan nov. 200136 inlägg Hej,
Försöker lära mig lite om PDO.
Har följande kod:
try{
$pdo = new PDO('mysql:host=localhost;dbname=...','...','...');
$stmt = $pdo->prepare('SELECT * FROM category');
$stmt->execute();
$result = $stmt->fetchAll(PDO_FETCH_ASSOC);
print_r($result);
}
catch(PDOException $e){
echo 'Error : '.$e->getMessage();
exit();
}
Men får följande fel:
Warning: PDOStatement::fetchAll() expects parameter 1 to be long, string given in C:\www\pdo_test.php on line 8
Vad jag förstår är PDO_FETCH_ASSOC en konstant som ska användas på det där sättet? :q
TroxyMedlem sedan mars 20041 505 inlägg PDO använder sig av "klass-konstanter", dvs. konstanter som är definierade för just denna klass.
Man använder två kolon för att komma åt sådana konstanter. Mer info:
http://se2.php.net/manual/en/language.oop5.paamayim-nekudotayim.php
http://www.php.net/manual/en/language.oop5.constants.php
Så skriv "PDO::FETCH_ASSOC" istället så ska det nog fungera bättre.
colioneMedlem sedan juni 20014 421 inlägg Om jag inte minns fel så var konstanterna namngivna med understreck först. Tro jag har läst det på netevil.
axedMedlem sedan nov. 200136 inlägg Missuppfattade manualen lite. Det funkar med PDO::FETCH_ARRAY. Tack för hjälpen!
colione skrev:
Om jag inte minns fel så var konstanterna namngivna med understreck först. Tro jag har läst det på netevil.
Korrekt. Det ändrades mellan betan och den skarpa versionen av PHP 5.1. Det finns speglade manualsidor kvar på nätet som inte är uppdaterade.
axedMedlem sedan nov. 200136 inlägg På den här sidan står det faktiskt PDO_FETCH_ASSOC som jag testade med först:
Länk till sidan...
Det måste vara en av dom gamla sidorna?
TroxyMedlem sedan mars 20041 505 inlägg axed, av adressen att döma verkar det där vara den "svenska" versionen (som dessutom inte ens är översatt) och därmet ganska gammal.
Här är en mer aktuell: http://se.php.net/manual/en/ref.pdo.php