0

当我尝试使用撇号提交数据时出现问题,不允许我保存到数据库中。

com0 是我的表单域。

$ucom0= mysqli_real_escape_string($_POST['com0']);

$AddQuery = "INSERT INTO database(feed1,comp1) VALUES ('".$ucom0."','".$uincrease0."')"; 

这是错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's
4

1 回答 1

3

带有撇号的数据会提前关闭 SQL 语句。这很糟糕,并且可能对 SQL 注入开放。你真的应该使用准备好的语句。但是,mysqli_real_escape_string可以使用。

但这不起作用的原因是因为mysqli_real_escape_string当你像你一样在程序上调用它时需要两个参数(不像 deprecated mysql_real_escape_string());

$ucom0= mysqli_real_escape_string($link, $_POST['com0']);

$link连接到数据库时返回的变量在哪里:

$link = mysqli_connect("databasehost", "username", "password", "database");

如果您使用基于对象的 mysqli 进行连接,情况会有所不同:

$mysqli = new mysqli("databasehost", "username", "password", "database");
$ucom0 = $mysqli->real_escape_string($_POST['com0']);
于 2012-10-05T15:34:27.620 回答