[英]Can't get PDO SQL query to work
我無法使該查詢正常工作。 它僅顯示第一個數據庫條目。 任何想法表示贊賞。
/* 准備 */
$sql = "SELECT personal.firstName, personal.lastName, etc.
FROM personal
LEFT JOIN exam
ON personal.P_ID=exam.P_ID
LEFT JOIN contact
ON exam.P_ID=contact.P_ID
WHERE exam.Level = ?
AND exam.Centre!='' ORDER BY exam.Centre";
$stmt = $db->prepare($sql);
/ *執行* / $ stmt-> execute(array($ level));
/* Fetch */
$row = $stmt->fetch(PDO::FETCH_ASSOC);
/* Display */
echo '<table>
<tr>
<td>Name</td>
<td>Surname</td>
<td>Paid?</td>
<td>Etc</td>
<td>Etc</td>
<td>Etc</td>
</tr>';
if($ row){foreach($ row as $ key => $ value)
{
echo '<td>';
echo $value;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
一個簡單的教程,供您正確使用。
以您的mysql查詢有效
$sql = "SELECT * FROM t WHERE a = $a AND b = '$b'";
取出您在其中插值的每個變量( 以及所有相應的格式,包括斜杠和引號 ),並在其中放置問號。
$sql = "SELECT * FROM t WHERE a = ? AND b = ?";
將這些變量以數組形式移動到execute()
中
$sql = "SELECT * FROM t WHERE a = ? AND b = ?"; $stm = $db->prepare($sql); $stm->execute(array($a,$b));
一切正常。
要以正確的格式獲取數據,必須使用正確的提取方法
$data = $stm->fetchAll();
foreach ($data as $row) {
echo $row['id'];
// do whatever
}
我也是PDO的新手,但是從您的代碼中,我注意到那里的查詢中沒有:centre
,因此該參數不會綁定?
另一件事是WHERE exam.Level:level
,您確定不是這個意思嗎? WHERE exam.Level = :level
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.