-1
對不起,如果標題含糊不清,不確定如何說出它。 目前,我試圖做一個簡單的PHP運行查詢並顯示數據庫中的所有數據,但沒有數據顯示頁面是完全空白的。從PDO和MySQL不顯示數據
下面是代碼:
<?php
$username = "user";
$password = "pass";
try {
$conn = new PDO('mysql:host=localhost;dbname=database', $username, $password);
$stmt = $conn->prepare('SELECT * FROM contacts');
$stmt->execute(array('id' => $id));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($result)) {
foreach ($result as $query_row)
{
extract($query_row);
echo '<tr>';
echo '<td>'.$fname.'</td>';
echo '<td>'.$lname.'</td>';
echo '<td>'.$title.'</td>';
echo '<td>'.$deparment.'</td>';
echo '<td><a href="mailto:'.$email.'">'.$email.'</a></td>';
echo '<td>'.$cell.'</td>';
echo '<td>'.$handle.'</td>';
echo '<td>'.$steam.'</td>';
echo '<td>'.$skype.'</td>';
echo '</tr>';
}
}
} else {
echo "No rows returned.";
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
我一直在下面的指南/讀取不同的,所以問題試圖聯繫上把握之前,所以我從來沒有與PDO工作。一條線,我想可能會搞砸了是這一行:
$stmt->execute(array('id' => $id));
我不明白什麼該行正在做,並且如果我能得到這將是巨大的解釋。我相信我理解其他代碼背後的邏輯。
'error_reporting'和'display_error'是否打開?我懷疑發生了錯誤,但它被隱藏了;因此是空白/白頁。另外它看起來你的選擇查詢沒有'where'子句。 – Latheesan
您需要告訴PDO拋出異常,然後您會看到問題所在(例如,您沒有綁定變量):'$ conn = new PDO('mysql:host = localhost; dbname = database',$ username, $ password,array(PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION));' – jeroen
'$ stmt-> execute(array('id'=> $ id));'正在執行準備好的語句。被傳入的數組應該用於參數替換,但是在查詢中沒有任何參數,所以這沒有意義並且會導致錯誤。只需轉到'$ stmt-> execute()'。 –