如何将这个有效的mysql语句有效地转换为PDO? [英] How can I convert this working mysql statement to PDO effectively?
本文介绍了如何将这个有效的mysql语句有效地转换为PDO?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试转换为使用PDO,但似乎无法从我的PDO while循环中获得结果.
I'm trying to convert to using PDO, but can't seem to get results from my PDO while loop.
此mysql语句给我结果:
This mysql statement gives me results:
$q = mysql_query("SELECT * FROM artist ORDER BY artist ASC");
while ($row = mysql_fetch_array($q)) {
$theartist .= '<option value="'.($row['artist_id']).'">'.($row['artist'])."</option>";
}
PDO数据库连接(似乎有效)
PDO database connection (that appears to work)
//the below isn't throwing any errors
$host='localhost';
$dbname='james_test';
$user='test';
$pass='testpass';
try {
# MySQL with PDO_MYSQL
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
}
catch(PDOException $e) {
echo $e->getMessage();
}
此PDO语句没有给我任何结果:
This PDO statement does not give me any results:
$query = $DBH->prepare("SELECT * FROM artist ORDER BY artist ASC");
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$theartist .= '<option value="'.($row['artist_id']).'">'.($row['artist'])."</option>";
}
推荐答案
这只是通过稍微更改代码即可使其工作.
This just makes it work by slightly changing your code.
//$query = $DBH->prepare("SELECT * FROM artist ORDER BY artist ASC");
$rows = $DBH->query("SELECT * FROM artist ORDER BY artist ASC");
//while($row = $query->fetch(PDO::FETCH_ASSOC)) {
if ($rows) {
foreach ($rows as $row) {
$theartist .= ''.($row['artist'])."";
}
}
修改: 查询函数可以一次性完成准备和执行,如果您没有要在查询中使用的变量,该函数将非常有用.
The query function does both prepare and execute in one go and is useful if you don't have variables to use in the query.
这篇关于如何将这个有效的mysql语句有效地转换为PDO?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文