webForumDet fria alternativet

PDO_FETCH_ASSOC?

PHP

6 svar · 494 visningar · startad av axed

Medlem sedan nov. 200136 inlägg
Frågan#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

Medlem 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.

Medlem 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.

Medlem sedan nov. 200136 inlägg
#4

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

Medlem 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.

Medlem 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?

Medlem 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

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)