并且不能通过PHP插入到MYSQL中


& can't be inserted in MYSQL through PHP

这对我来说听起来很奇怪。我有一个简单的PHP脚本,可以将数据插入MYSQL表中。通过 AJAX 从客户端接收内容后,数据存储在变量中:

$content=$_POST['content']; 
$sql="insert into contents values('$content')";
mysql_query($sql);

问题是,如果内容包含"&"符号,则 & 之前的子字符串存储在 MYSQL 中,其余字符串将被丢弃。如果我直接在MYSQL中尝试,那么它会存储完整的字符串containg和symbol。

问题是mysql将"&"重新识别为AND。

$content = mysql_real_escape_string($_POST['content']); 
$sql = "insert into contents (column) values('$content')";
mysql_query($sql);
首先,

如果这个网站是上线的,那就把它拿下来,哈哈。这是典型的 sql 注入漏洞。

您现在需要使用mysqli而不是mysql。

你使用它的方式是相同的,但它有一个非常酷的功能,称为"真正的转义字符串"

它的作用是在将数据传递到数据库之前对其进行参数化

$content = $_POST['content']; 
$connection = new mysqli('ipaddress','username','password','database');
$content = $connection->real_escape_string($content);
$sql="insert into contents values('$content')";
$connection->query($sql);

这是一种更安全的数据传入方式