我正在尝试在PHP中使用PDO进行SQL查询,并且出现了一些我无法弄清楚的问题。
这是我的代码:
*//Connection file*
< ? php
$dsn = 'mysql:host=localhost;dbname=oopdo';
$db = new PDO($dsn, 'root', '');
?>
*//Index file*
< ? php
try{
require_once 'pdo_connection.php';
$sql = 'SELECT * FROM names'.
'ORDER BY name';
} catch (Exception $ex) {
$error = $ex->getMessage();
}
?>
<html>
<head>
</head>
<body>
<h2>Looping direct over SELECT query</h2>
<table>
<tr>
<th>Name</th>
<th>Meaning</th>
<th>Gender</th>
</tr>
foreach($db->query($sql) as $row){ (line 35)
<tr>
<td> echo $row['name']; </td>
<td> echo $row['meaning']; </td>
<td> echo $row['gender']; </td>
</tr>
}
</table>
</body>
</html>
警告:第35行为foreach()提供的参数无效
我在这里做错了什么?
感谢。
答案 0 :(得分:2)
你做错了什么:
您尚未检查查询的返回状态,该状态因语法错误而失败。你应该使用这样的代码:
$result = $db->query($sql);
if ($result !== false) {
foreach($result as $row) {
// do stuff
}
} else {
echo 'The SQL query failed with error '.$db->errorCode;
}
你实际做错了什么:
你将查询分成两行,你已经设法省略了 一些空白。您的查询以
提交SELECT * FROM namesORDER BY name
在names