0
我在想,如果有人能帮助一些线索,为什么这PHP代码不进入for循环?在MySQL中,查询返回我需要的相应行,但在此PHP文件中,它无法将任何内容返回到数组中,因此不执行foreach
循环。PHP使用fetchall()不返回行
CODE
<?php
try {
$sql = 'SELECT FirstName,LastName ';
$sql .= 'FROM adventureworks.employeedepartmenthistory ';
$sql .= 'JOIN employee USING(EmployeeID) ';
$sql .= 'JOIN contact USING(ContactID) ';
$sql .= 'WHERE DepartmentID = 2';
$stmt = $dbh->prepare($sql);
$stmt->execute();
echo $sql;
echo '<ul>';
foreach ($stmt->fetchAll() as $emps){
echo "<li>" . $emps["FirstName"] . $emps["LastName"] . "</li>";
}
echo '</ul>';
$stmt = null;
}
catch (Exception $e) {
echo "Error";
echo $e->getMessage();
}
?>
我甚至有程序呼应SQL查询,我复制到MySQL,它仍然有效。它可能是一个简单的语法错误,还是表格连接,即时通讯表演?
也为Im肯定的是,该方案正在与正确的,因为我有其他类似的PHP文件正常工作这样一个数据库:
<?php
try {
$sql = 'SELECT department.Name FROM adventureworks.department';
$stmt = $dbh->prepare($sql);
$stmt->execute();
echo '<ul>';
foreach ($stmt->fetchAll() as $depts) {
echo "<li>" . $depts["Name"] . " -> (" .
"<a href='deptEmps.php?deptID=" . $depts['deptID']
. "'>Employees </a>)" . "</li>\n";
}
echo '</ul>';
$stmt = null;
}
catch (Exception $e) {
echo "Error";
echo $e->getMessage();
}
?>
'error_reporting(E_ALL); 的ini_set( 'display_errors设置', '1');' – AbraCadaver
...和http://php.net/manual/en/pdo.error-handling.php然后编辑您的帖子包含的错误,如果有的话。 –
感谢您的评论,虽然PHP不认为这是一个错误。它只是简单地运行查询而不接收行。我不相信错误处理会查明这个 –