'카탈로그'라는 데이터베이스와 '카테고리'라는 테이블이 있습니다. 테이블에는 categoryId, categoryName, parentCategory의 순서로 3 개의 열이 있습니다. parentCategory = 'root'가있는 각 행에 대해 categoryId 및 categoryName을 가져 오려고합니다. 나는 그것이 단순한 쿼리라고 생각했지만 분명히 뭔가를하고있다. 왜냐하면 나는 메시지를 계속 받고 있기 때문에 - 쿼리를 실행할 수는 없지만 - mysql 에러가 표시되지 않는다. 아래 코드를 게시했습니다. 누구든지 나를 똑바로 가리킬 수 있습니까?mysqli 쿼리가 실패하고 오류가 발생하지 않습니다.
P. $ 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
큰 일이 아니어야합니다. 그런 식으로 일하는 것에서 단 한 줄 밖에 없습니다. 규칙적인 방식으로 사용하면 피해를 입힐 가능성은 거의 없습니다 (http://bobby-tables.com/php). – tadman