Php 将值插入MySql时出现数据库错误
我在插入值mysql时出错。 请看我的PHP代码Php 将值插入MySql时出现数据库错误,php,mysql,mariadb,Php,Mysql,Mariadb,我在插入值mysql时出错。 请看我的PHP代码 <?php $ali = $_POST['ali']; $con = @mysqli_connect('localhost', 'root', '', 'mohammad'); if (!$con) { echo "Error: " . mysqli_connect_error(); exit(); } $insertinto_ic_add = "INSERT I
<?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>
我同意这不是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 . "')";
您的代码容易受到相关攻击。甚至不能完全保护它。请学习使用yes'此代码可能与我的朋友重复,我在mysql中遇到问题NO sql injection,请参见我的示例