mysql_fetch_assoc()的PDO方法?

时间:2013-05-03 16:40:11

标签: php mysql database pdo

我以前做过:

$resource = mysql_query("SELECT * FROM table WHERE id = " . $id);
$user = mysql_fetch_assoc($resource);
echo "Hello User, your number is" . $user['number'];

我读过mysql语句都已弃用,不应该使用。

我如何使用PDO执行此操作?

第一行是:

$stmt = $db->prepare("SELECT * FROM table WHERE id = " . $id); // there was an aditional double quote in here.
$stmt->execute(array(':id' => $id));

mysql_fetch_assoc()函数怎么样?

我正在使用php

5 个答案:

答案 0 :(得分:6)

您可以使用(PDO::FETCH_ASSOC)常数
用法将是 while ($res = $stmt->fetch(PDO::FETCH_ASSOC)){ .... }
这是参考文献(文档准确):http://www.php.net/manual/en/pdostatement.fetch.php

答案 1 :(得分:1)

手册中记录的所有内容都很好:http://php.net/manual/en/pdostatement.fetchall.php

例如:

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

答案 2 :(得分:1)

有一本很好的手册right here

您可以从中了解每次获取时不需要设置获取模式的内容 ...甚至PDO你根本不需要任何阵列来回应一个数字:

$stmt = $db->prepare("SELECT number FROM table WHERE id = ?");
$stmt->execute(array($id));
echo "Hello User, your number is".$stmt->fetchColumn();

答案 3 :(得分:0)

这是一个很好的教程: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

<?php
   $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
   $stmt = $db->query("SELECT * FROM table");
   $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
   var_dump($results);
?>

答案 4 :(得分:-2)

您可以使用PDO :: FETCH_ASSOC。

$stmt = $db->prepare("SELECT * FROM table WHERE id = :id");
$stmt->execute(array(':id' => $id));
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
while($record = $stmt->fetch()) {
   //do something
}

您可以找到一个好的教程here