我以前做过:
$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
答案 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