gpt4 book ai didi

php - mySQL PDO 无法从表中选择

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:34 24 4
gpt4 key购买 nike

我正在尝试学习 mySQL PDO .. 一个接一个地阅读教程,并尝试应用不同的方法来执行简单的 SELECT 语句。

这是我最近的尝试:

<?
include("inc/connPDO.php"); // hostname, username and password and dbName are in here
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbName", $username, $password);
/*** echo a message saying we have connected ***/
echo 'Connected to database'; // this outputs appropriately

/*** The SQL SELECT statement ***/
$sql = "SELECT * FROM rofWeapons";
echo '<p>'.$sql;
foreach ($dbh->query($sql) as $row){ // *** line 11 error
print $row['weaponName'] .' - '. $row['weaponType'] . '<br />';
}


/*** close the database connection ***/
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}

?>

输出如下:

Connected to database

SELECT * FROM rofWeapons

Warning: Invalid argument supplied for foreach() in /home/path/to/script/script.php on line 11

我正在学习教程.. foreach 看起来不错。为什么它是无效参数?

当我在 mySQL 中输入“SELECT * FROM rofWeapons”时,查询表非常好。

请帮忙?

另一个尝试

如果我尝试 PREPARE 语句:

/*** The SQL SELECT statement ***/
$weaponType=1;
$sql = "SELECT * FROM rofWeapons WHERE weaponType=:weaponType";

$stmt = $dbh->prepare($sql); // *** error Line 12 ***
$stmt->bindValue(':weaponType', $weaponType, PDO::PARAM_INT);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);

while($row = $stmt->fetch()) {
print $row['weaponName'] .' - '. $row['weaponType'] . '<br />';
}

我没有收到任何错误。什么都没有。

这很令人沮丧。我究竟做错了什么?

最佳答案

您还没有获取要在循环中使用的数组。

改变:

foreach ($dbh->query($sql) as $row){
//YOUR CODE STUFF
}

收件人:

foreach ($dbh->query($sql)->fetchAll as $row){
//YOUR CODE STUFF
}

它工作正常。

关于php - mySQL PDO 无法从表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16953823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com