PHP找到数据库,但似乎找不到表

时间:2013-05-06 03:46:39

标签: php mysqli identify

我有一个完美工作的小型数据库,有一个名为“Category”的表,其中有一行名为“Name”。我已经尝试了每个版本(大写而不是)的名称,但我的功能不返回我想要它返回的内容。那里有人发现了一个明显的错误?数据库连接得很好......或者我正在看一些严重麻烦的db-conflict。

这是我的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);


?>

2 个答案:

答案 0 :(得分: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;
        ...
    

答案 1 :(得分:-1)

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

更新 -

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

添加

global $link 

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