mysqli查询失败,没有错误

时间:2012-11-28 20:58:18

标签: php mysql mysqli

我有一个名为'catalog'的数据库和一个名为'categories'的表。该表按此顺序有3列:categoryId,categoryName,parentCategory。我正在尝试为具有parentCategory ='root'的每一行抓取categoryId和categoryName。我认为这是一个简单的查询,但我显然做错了,因为我一直收到消息 - 无法执行查询 - 但没有显示mysql错误。我在下面发布了我的代码。有人能直接指出我吗?

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>

3 个答案:

答案 0 :(得分:7)

display_children()函数无权访问$ connect变量。

试试这个:

function display_children($parent) {
    global $connect;
    $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);
}

答案 1 :(得分:0)

我认为您只需要在查询中引用$parent的值。

$query = "SELECT categoryId, categoryName FROM `categories` 
          WHERE parentCategory = '" . $parent . "'";

希望这有帮助!

答案 2 :(得分:0)

mysqli_error()需要与数据库的链接作为参数。

因此,错误的代码如下所示:

or die ("error: " +mysqli_error($connect));

这里也有描述: http://php.net/manual/en/mysqli.error.php

Mayby这有助于报告错误...