所以我用3个输入创建了一个HTML表单。 输入为ID,以查找要更新的行。 然后主题,这是我脚本的主题(这是用PHP制作的新闻脚本)。 还有新闻,这就是应该在新闻中显示的全文。 问题是我希望能够更新现有行,因此只需“编辑我的新闻”即可。
我收到此错误:
删除记录时出错:您的SQL语法有错误;检查 对应于您的MariaDB服务器版本的手册 在第1行的'SET news ='adasdasd'WHERE id = 1'附近使用的语法
PHP代码:
function Person(name) {
if (!(this instanceof Person)) return new Person(name);
this.name = name;
}
console.log(new Person('bob'));
console.log(Person('tom'));
HTML表单代码:
`https://pastebin.com/vThb5A9W`
答案 0 :(得分:-2)
您的更新语句具有多个SET
表达式。您只需要一个:
$sql = "UPDATE news SET subject= '?', news= '?' WHERE id=?";
我添加的?
将与准备好的语句一起使用。准备好的语句可确保您的代码不会受到SQL注入的影响。您的代码应如下所示:
$stmt = mysqli_prepare($mysqli,'UPDATE news SET subject = ?, news = ? WHERE id= ?');
mysqli_stmt_bind_param($stmt,'ssd', $subject, $news, $id);
if(mysqli_stmt_execute($stmt)){
...
}
资源:
https://dev.mysql.com/doc/refman/8.0/en/update.html
http://php.net/manual/en/mysqli.prepare.php
http://php.net/manual/en/mysqli-stmt.bind-param.php