【发布时间】:2013-06-06 04:44:49
【问题描述】:
我正在尝试学习 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();
}
?>
输出如下:
连接到数据库
从 rofWeapons 中选择 *
警告:为 foreach() 提供的参数无效 /home/path/to/script/script.php 在第 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 />';
}
我没有错误。什么都没有。
这很令人沮丧。我究竟做错了什么?
【问题讨论】:
-
你没有获取数组...
-
@Mr.Alien 代码是正确的。请参阅此处的第一个示例php.net/manual/en/pdo.query.php
-
print_r($dbh->query($sql)) 结果是什么?
-
print_r($dbh->query($sql));什么都不返回...
-
有人可以给我一些代码,以便我能更好地理解结构吗?我已经阅读了许多教程和 PHP.NET 资源。我只是无法让它工作......尽管多次尝试,错误接踵而至。