Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询失败SQL语法中有错误_Php_Mysql - Fatal编程技术网

Php 查询失败SQL语法中有错误

Php 查询失败SQL语法中有错误,php,mysql,Php,Mysql,我正在尝试使用php更新mysql数据库 $connection=mysqli_connect('localhost','root','','loginapp'); if(!$connection){ die("database connection failed"); } if (isset($_POST['submit'])){ $username = $_POST['username']; $password = $_POST['password']; $id = $_POST[

我正在尝试使用php更新mysql数据库

$connection=mysqli_connect('localhost','root','','loginapp');
if(!$connection){
    die("database connection failed");
}
if (isset($_POST['submit'])){

$username = $_POST['username'];
$password = $_POST['password'];
$id = $_POST['id'];
$query = "UPDATE users SET ";
$query .= "username = '$username', ";
$query .= "password = '$password' ";
$query .= "WHERE id = $id";
$result = mysqli_query($connection, $query);

if (!$result) {
    die("Query Failed".mysqli_error($connection));
}
}
我已经尝试了所有可能的方法来编写以下代码,但每次都会出现错误:

查询失败您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行附近要使用的正确语法


您必须使用准备好的语句并打开正确的错误报告。不要使用die显示错误消息。请勿在数据库中存储明文密码,请改用。这类代码的一个正确但简单的示例如下:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = new mysqli('localhost','root','','loginapp');
$connection->set_charset('utf8mb4');

if (isset($_POST['submit'])) {
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

    $stmt = $connection->prepare('UPDATE users SET username=?, password=? WHERE id=?');
    $stmt->bind_param('sss', $_POST['username'], $password, $_POST['id']);
    $stmt->execute();
}

您对SQL注入持开放态度,应该马上解决这个问题。我刚刚开始学习使用mysql的php。关于sql注入的主题尚未涉及。您不会检查表单是否已在此代码中的任何位置提交。请记住,当您单击指向页面的链接时,脚本将运行。。。但是,如果表单尚未提交,$\u帖子中将没有任何内容variables@Vaishali首先学习它-学习如何做一些不安全的事情没有意义,而且你不应该以明文形式存储密码,也不应该因为错误消息而死亡。这个代码示例是一个没有人应该学习的代码示例!