这是我的数据库连接
try {
//create PDO connection
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
//show error
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
我想从我的表中选择一些值:
$pdo = $db->prepare('SELECT * FROM animals ORDER BY id ASC;');
foreach ($pdo->execute($db) as $row) {
echo $row['name'];
}
但我收到两条警告消息:
Warning: PDOStatement::execute() expects parameter 1 to be array, object given in...
第二个警告:
Warning: Invalid argument supplied for foreach() in...
为 JonStirling 编辑:
$pdo = $db->prepare('SELECT * FROM animals ORDER BY id ASC;');
while ($row = $pdo->fetch()) {
echo $row['name'];
}
使用这个解决方案我没有收到任何警告,但仍然没有结果。
最佳答案
一个可能的解决方案是...
$pdo = $db->query('SELECT * FROM animals ORDER BY id ASC;');
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "\n" . $row['name'];
}
关于php - 为什么我的 mysql 连接中有一个 "Invalid argument supplied for foreach"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887560/