php mysql身份验证问题

时间:2015-05-27 13:59:07

标签: php mysql

我在我的mysql数据库数据库中添加了删除功能,但是当我点击提交按钮时,我收到此错误消息“对用户''删除命令''@ localhost'对于表'人'我看了一下用户root看到它已添加所有priveleges请帮助这是我正在努力的代码

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "yoga";

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

    if($conn -> connect_error){
        die("connection failed: ".$conn -> connect_error);
    }

        if(isset($_POST['delete'])){


        mysql_query("DELETE FROM `yoga`.`people` WHERE `people`.`id` =          '$_POST[deleteId]' ") or die(mysql_error());
        }

    ?>

2 个答案:

答案 0 :(得分:0)

根据错误消息,您的用户名为空,这意味着不会传递用户名值

  

&#34; DELETE命令被拒绝给用户&#39;&#39; localhost&#39;对于表&#39;人&#34;

如果是由于权限不足。 检查

的结果
SHOW GRANTS FOR 'root'@'localhost';

确保您拥有正确的权限

GRANT DELETE ON `yoga`.`people` TO 'root'@'localhost';
or
GRANT DELETE ON `yoga`.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

有时也会发现在phpmyadmin中运行的查询可能无法在服务器中运行。要在任何平台上完成这项工作,请尝试这样做(省略数据库名称)

schema_name.table_name table_name

DELETE FROM people WHERE `people`.`id` = '$_POST[deleteId]' "

答案 1 :(得分:0)

您没有使用您创建的连接。将查询行更改为:

 $conn->query("DELETE FROM `yoga`.`people` WHERE `people`.`id` =          '$_POST[deleteId]' ") or die($conn->error);

我还建议你使用预准备语句,因为现在你很容易受到sql注入。