webForumDet fria alternativet

PDO_FETCH_ASSOC?

6 svar · 492 visningar · startad av axed

axedMedlem sedan nov. 200136 inlägg
#1

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
#2

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
#3

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
#4

Missuppfattade manualen lite. Det funkar med PDO::FETCH_ARRAY. Tack för hjälpen!

itpastornMedlem sedan feb. 2007278 inlägg
#5

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
#6

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
#7

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

134 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)