PHP MySQL查询未返回任何结果

时间:2018-07-30 05:39:07

标签: php mysqli

我通过PHP对MySQL的查询未返回任何结果。首先,我尝试连接并在已知表上进行选择,但没有结果。然后,我尝试获取表的列表,再次没有结果。当我通过phpMyAdmin查看数据库时,可以看到表及其内容。这是我的代码。谁能提供一些有关我做错事情的帮助?

1.5ms

这是我看到的结果:

准备连接

测试页

成功连接

0个结果

数据库错误,无法列出表

MySQL错误:

结果结束

由于某种原因,我无法使MySQL返回错误消息。

2 个答案:

答案 0 :(得分:1)

致电mysqli_query()

mysqli_query($dbname, $sql);

第一个参数是您的数据库链接,而不是名称...

mysqli_query($connect, $sql);

也-不要使用@进行连接(最好是在任何地方),因为这样可以减少错误。

更新: 也刚刚注意到...

mysqli_ping($connection)

应该是...

mysqli_ping($connect)

答案 1 :(得分:1)

您只需要复制并粘贴此代码

您不必使用$dbname 必须使用$connect

<?php
# /* $ php -f db-connect-test.php */

echo"preparing to connect";

$dbname = '#########';
$dbuser = '#########';
$dbpass = '#########'; 
$dbhost = 'localhost';

$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die("Unable to Connect to '$dbhost'");

echo"<html>";
echo"<title>test page</title>";
echo"<body>";
echo"<h2> test page</h2>";

/* check connection */
if ($conn->connect_error) {
    die("Connection failed: " . mysqli_connect_error());
}
else{
     echo"Successfully Connected <p>";
}
if(mysqli_ping($connection)){
    echo "got it<p>";
}
$sql = "SELECT * FROM `announcements`";
$result = mysqli_query($connect, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
       echo 'date: ' . $row['date'] . '\tTitle: ' . $row['title'] . '\tBody: ' . $row['body'] .'<br />';
    }
} else {
    echo "0 results<p>";
    $sql = "SHOW TABLES";
    $result = mysqli_query($connect, $sql);

    if (!$result) {
        echo "DB Error, could not list tables<p>";
        echo 'MySQL Error: ' . mysqli_error();
    }
    else{
        while ($row = mysqli_fetch_row($result)) {
            echo "Table: {$row[0]}<p>";
        }
    }

}
$conn->close();

echo"</body>";
echo"</html>";
?>