我在插入值mysql上出错。 请查看我的PHP代码
<?php
$ali = $_POST['ali'];
$con = @mysqli_connect('localhost', 'root', '', 'mohammad');
if (!$con) {
echo "Error: " . mysqli_connect_error();
exit();
}
$insertinto_ic_add = "INSERT INTO sq (text) VALUES ('" . $ali . "')";
mysqli_query($con, $insertinto_ic_add) or die("database error:" . mysqli_error($con));
?>
<form action="" method="post">
<input name="ali">
</form>
我输入值“ n't”,并且发生错误:
数据库错误:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在第2行的't')'附近使用正确的语法
答案 0 :(得分:0)
我同意 this 没有显示SQL注入。但是,预防措施与解决问题的方法相同。您必须在文本中转义某些字符(特别是撇号)。
请注意,错误消息甚至指向撇号。
如果您回覆了声明,您会看到
INSERT INTO sq (text)
VALUES ('blah blah don't do this')
观察三个撇号,并考虑解析器的混乱程度。
更好的代码就像
$mali = $con->real_escape_string($ali);
$insertinto_ic_add = "INSERT INTO sq (text)
VALUES ('" . $mali . "')";