-2

我有一个完美运行的小型数据库,有一个完全命名为“Category”的表,而它又有一个完全命名为“Name”的行。我已经尝试了名称的每个版本(大写和非大写),但我的函数没有返回我希望它返回的内容。有人发现明显的错误吗?数据库连接得很好......或者我正在寻找一些严重麻烦的数据库冲突。

这是我的functions.php,我已将其包含在index.php 中并在body 处进行了函数调用。"<?php display_menus(); ?>

<?php 

//Connect to database

$link = mysqli_connect('localhost', 'root', 'root');
if (!$link)
{
    $output = 'Unable to connect to the database server.';
    echo $output;
    exit();
}

if (!mysqli_set_charset($link, 'utf8'))
{
    $output = 'Unable to set database connection encoding.';
    echo $output;
    exit();
}

if (!mysqli_select_db($link, 'Asperod6'))
{
    $output = 'Unable to locate the "Asperod6" database.';
    echo $output;
    exit();
}

    $output = 'Database connection established.';
    echo $output;

//Funktion som skriver ut meny


function display_menus()
{
    $result = mysqli_query($link, "SELECT * FROM Category");

    if (!$result)
        {
            $error = 'Error fetching Kategorier: ' . mysqli_error($link);
            echo ("There is none");
        }



        if (mysqli_num_rows($result) > 0) 
        {
            echo "<ul>";

            while ($row = mysqli_fetch_array($result)) 
            {
                echo "<li>" . $row['Name'] . "</li>";
            }

            echo "</ul>";

            mysqli_free_result($result);

        }

} 





mysqli_close($link);


?>
4

2 回答 2

2

因为由于某种原因,您没有向自己显示实际的错误消息,也没有打开 php 错误报告。如果你让 PHP 告诉你错误,你会被告知 $link 是未定义的。

  1. 显示实际错误

    $result = mysqli_query($link, "SELECT * FROM Category"); 
    if (!$result) {
       trigger_error(mysqli_error($link));
    } 
    
  2. 让PHP报错

    ini_set('display_errors',1);
    error_reporting(E_ALL);
    
  3. 最后,在向您报告所有错误之后,使 $link 全局内部函数

    function display_menus()
    {
        global $link;
        ...
    
于 2013-05-06T04:02:30.267 回答
-1

尝试将 die() 语句与您的连接语句一起放置并获取实际错误。你如何确定它正在连接到数据库?

更新 -

现在查看更新,问题可能在于该变量的范围。

添加

global $link 

在你的功能中。在 mysqli_query() 语句中添加 die() 语句将为您提供确切的错误。

于 2013-05-06T03:52:10.393 回答