Php 查询失败SQL语法中有错误
我正在尝试使用php更新mysql数据库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[
$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首先学习它-学习如何做一些不安全的事情没有意义,而且你不应该以明文形式存储密码,也不应该因为错误消息而死亡。这个代码示例是一个没有人应该学习的代码示例!