SELECT命令被拒绝给用户''@';localhost';对于表';任务';


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

即使所有权限都已提供给localhost,我仍会不断收到该错误。我可以插入来自相同用户名/通行证的数据,但它无法检索。

我已经尝试过在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();
    ?>

谢谢。

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

$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())

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

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

此外,您正在使用的MySQL也被弃用。

您正在打开与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函数,错误将消失。