[英]Data is not fetched from MySQL database
我正在嘗試從數據庫中獲取數據,但沒有提供任何輸出。 它僅顯示“所有費用”。 我的代碼如下:
<?php
include 'preCode.php';
include 'header.php';
echo '<body><div class="standardLayout">';
include 'systemMenu.php';
echo '<h4>All Charges</h4>';
$user = unserialize($_SESSION['user']);
echo $query = "SELECT * FROM billingItems WHERE userID=' " . $user-> userID . " ' ORDER BY deliveryTimestamp DESC";
$result = mysqli_query($db, $query);
while ($row = mysqli_fetch_array($result)) {
echo $row['type'] . '<br>' .
'Cost: $' . $row['amount'] . '<br>' .
' Finalized: ' . $row['deliveryTimestamp'] ;
}
echo '</div></body></html>';
$_SESSION['user'] = serialize($user);
include 'footer.html';
?>
這是echo $query;
的輸出echo $query;
:
所有費用對象(用戶)#2(11){[“” orders“] => NULL [” fName“] =>字符串(6)” kimmie“ [” lName“] =>字符串(4)” kaur“ [”地址“] =>字符串(10)” 6768bbnmmn“ [”電話“] =>字符串(11)” 66767798898“ [”電子郵件“] =>字符串(6)” kimmie“ [” userID“] =>字符串(3 )“ 108” [“ password”] =>字符串(4)“ kaur” [“ passwordX”] => NULL [“ amountOwed”] =>字符串(1)“ 0” [“ zip”] =>字符串(6 )“ 768798”} SELECT * FROM billingItems WHERE userID ='108'ORDER BY deliveryTimestamp DESC
在我看來您的查詢構建是一個問題,因為這
$query = "SELECT * FROM billingItems WHERE userID=' " . $user-> userID . " ' ORDER BY deliveryTimestamp DESC";
如果ID為“ bob”,則將為您提供此信息。
SELECT * FROM billingItems WHERE userID=' bob ' ORDER BY deliveryTimestamp DESC
您正在ID周圍嵌入空格,該空格與列的內容不匹配。
執行此操作的更安全方法是使用准備好的語句並綁定參數,這樣您就不會遇到此類錯誤。 它還可以使您免受SQL注入的傷害。 有關詳細信息,請參見此問題: 如何防止PHP中的SQL注入?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.