SELECT 拒绝用户 ''@'localhost' 的 table 'tasks' 命令

SELECT command denied to user ''@'localhost' for table 'tasks'

即使所有权限都已提供给本地主机,我仍然收到该错误。我可以从同一个 username/pass 插入数据,但它不会检索它。

我已经尝试过注释config.inc.php中的行并执行GRANT.

的方法

下面是我的代码

<?php
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "to_do_list";

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 

        $query = "SELECT `task`, `date_of_task`, `time_of_task`,`id`  FROM `to_do_list`.`tasks`;"; 

       $result = mysql_query($query) or die($query."<br/><br/>".mysql_error());


      while($row = mysql_fetch_array($result)){         
        echo "<tr>".
        "<td>" . $row['task'] . "</td>".
        "<td>" . $row['date_of_task'] . "</td>".
        "<td>" . $row['time_of_task'] . "</td>".
        "<td> <button value=\"Edit\" class=\"btn btn-warning\"> </td>".
        "<td> <button value=\"Edit\" class=\"btn btn-warning\"> </td>".
        "</tr>";  
        }
        mysql_close();
    ?>

谢谢。

我确实在您的查询末尾看到一个额外的分号:

$query = "SELECT ... FROM `to_do_list`.`tasks`;"; 

您使用的 MySQL 也已弃用。

更改为以下代码解决了我的问题。我认为这可能是由于使用 query 作为变量的冲突。

$sql = "SELECT task,date_of_task,time_of_task,id  FROM to_do_list.tasks;";
$result = $conn->query($sql) or die($sql."<br/><br/>".mysql_error());


if ($result-> num_rows > 0) {
    // output data of each row
    while ($row = $result->fetch_assoc())

您正在打开与 MySQLi 的连接:

$conn = new mysqli($servername, $username, $password, $dbname);

那么你正在使用 mysql_* 函数:

$result = mysql_query($query) or die($query."<br/><br/>".mysql_error());

while($row = mysql_fetch_array($result)){   

将您的代码更改为仅使用 MySQLi functions,错误将消失。