我有一個名爲'catalog'的數據庫和一個名爲'categories'的表。該表按此順序排列3列:categoryId,categoryName,parentCategory。我試圖抓住具有parentCategory ='root'的每一行的categoryId和categoryName。我認爲這是一個簡單的查詢,但我顯然做錯了,因爲我不斷收到消息 - 無法執行查詢 - 但沒有顯示mysql錯誤。我已經在下面發佈了我的代碼。任何人都可以直接點我嗎?mysqli查詢失敗,沒有錯誤
P.S.我的值賦給了$ db變量;我只是沒有在這裏包括這些。
<?php
$connect = mysqli_connect($db_host,$db_user,$db_password,$db_database)
or die ("Couldn't connect to server: ".mysqli_error());
function display_children($parent) {
$query = "SELECT categoryId, categoryName FROM `categories` WHERE parentCategory=".$parent;
$result = mysqli_query($connect,$query)
or die ("Couldn't execute query: ".mysqli_error());
echo "<ul>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<li>".$row['categoryName']."</li>";
display_children($row['categoryId']);
}
echo "</ul>";
mysqli_close($connect);
}
?>
<div class="menu">
<?php
/* Menu Write */
display_children("root");
?>
</div>
請,如果你使用'mysqli',這是一件好事,可以使用** SQL佔位符**。你在這裏做什麼是非常危險的。你的查詢應該包含'WHERE parentCategory =?',你應該調用['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)來關聯佔位符值。 – tadman
@tadman - 我會看看佔位符。感謝您的反饋意見! – Leann
它不應該是一個大問題,你只是一條線,而不是以這種方式工作。如果你以有紀律的方式使用它們,你幾乎不可能引入破壞性的[SQL注入漏洞](http://bobby-tables.com/php)。 – tadman