我正在使用一个简单的留言簿,我想用mysql_real_escape_string来保护它。但是现在没有数据放入数据库了。在我使用此代码之前:
$con=mysqli_connect($host,$user,$pass,$dbname);
if (mysqli_connect_errno($con))
{
echo "<h1>Connectie Database mislukt: " . mysqli_connect_error() ."</h1>";
}
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
date_default_timezone_set('Europe/Amsterdam');
$datetime=date("d-m-y \o\m\ H:i:s");
$sql="INSERT INTO guestbook(name,email,message,datetime) VALUES('$name','$email','$message',
现在我在变量中使用real_escape_string,但不再将数据放入数据库中:
$name = mysql_real_escape_string($con, $_POST['name']);
$email = mysql_real_escape_string($con, $_POST['email']);
$message = mysql_real_escape_string($con, $_POST['message']);
我做错了什么?
答案 0 :(得分:0)
由于这个问题不应该没有答案,所以决定发布以下内容:
mysql_real_escape_string
是基于mysql_
的函数,不能与mysqli_
一起使用。那些不同的MySQL API不会相互混合。
因此,您需要在代码中将mysql_real_escape_string
的所有实例更改为mysqli_real_escape_string
。
另外,请查看使用mysqli
with prepared statements或PDO with prepared statements,他们更安全。