我有一个完美工作的小型数据库,有一个名为“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);
?>
答案 0 :(得分:2)
由于某种原因,您没有向自己显示实际的错误消息,也没有打开php错误报告。如果你让PHP告诉你错误,你会被告知$ link是未定义的。
显示实际错误
$result = mysqli_query($link, "SELECT * FROM Category");
if (!$result) {
trigger_error(mysqli_error($link));
}
使PHP报告错误
ini_set('display_errors',1);
error_reporting(E_ALL);
最后,在向您报告所有错误后,将$ link全局设置为功能
function display_menus()
{
global $link;
...
答案 1 :(得分:-1)
尝试将die()语句与您的连接语句一起放置并获取实际错误。你怎么确定它连接到数据库?
更新 -
现在查看更新,问题可能是该变量的范围。
添加
global $link
在你的功能中。在mysqli_query()语句中添加die()语句将为您提供确切的错误。