我正在將一些代碼轉換爲訪問數據庫到PDO。我遇到以下情況:PHP PDO mysql_data_seek
mysql_data_seek($result, 0);
$row0 = mysql_fetch_assoc($result);
從我在谷歌等的讀數,我理解這一點應該是:
$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);
然而,這是行不通的。任何想法我做錯了什麼?
我正在將一些代碼轉換爲訪問數據庫到PDO。我遇到以下情況:PHP PDO mysql_data_seek
mysql_data_seek($result, 0);
$row0 = mysql_fetch_assoc($result);
從我在谷歌等的讀數,我理解這一點應該是:
$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);
然而,這是行不通的。任何想法我做錯了什麼?
從手冊;
從與PDOStatement對象關聯的結果集中獲取一行。 fetch_style參數確定PDO如何返回行。
您需要一個由PDO::prepare
方法創建的stmt
。
讓我們來看看這個;
// assuming $pdo was created before as well
$sth = $pdo->prepare("SELECT name, colour FROM fruit");
// exec here
$sth->execute();
// get a row here
$row = $sth->fetch(PDO::FETCH_ASSOC);
// here probably you'll get a print out like
// Array([name] => Banana, [color] => Yellow)
print_r($row);
看到更多細節在這裏:PHP PDOStatement::fetch
您需要執行一個準備好的語句。 – bitWorking 2013-02-18 23:50:56
絕對真實! – 2013-02-18 23:52:26
與查詢第一種選擇:
可以遍歷直接query
結果..
foreach ($db->query($sql) as $row) {
echo $row['FirstName'];
}
與第二個選項執行:
$sth = $db->prepare($sql);
$sth->execute();
$row = $sth->fetch(PDO::FETCH_ASSOC); // fetch the next row from statement
echo $row['FirstName'];
我得到了 - 它看起來$ result = $ dbM-> query($ sqlQuery)'已清理'過了一會兒($ row = $ result-> fetch(PDO :: FETCH_ASSOC))。通過寫另一個$ result2我使用它,它的工作。 – 2013-02-18 23:48:58
然後將一個答案標記爲接受的答案。 – bitWorking 2013-02-18 23:57:01
的輸出是什麼? – Achrome 2013-02-18 23:18:50
'$ result'從哪裏來? – michi 2013-02-18 23:24:42
$ result = $ db-> query($ someSqlQuery)或死(「failed!」); $ someArray = array(); \t while($ row = $ result-> fetch(PDO :: FETCH_ASSOC)){\t \t array_push($ someArray,$ row ['FirstName']); } – 2013-02-18 23:29:13