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にあることをコピーし、それはまだ動作します。それは単純な構文エラーであるか、またはそれが実行しているテーブルに参加していますか?私はこの1つのように正常に動作し、他の類似した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はこれをエラーとして認識しません。単にクエリを実行しているだけで、行を受け取ることはありません。私はエラー処理がこれを特定すると信じていません –