如何使用mysql_real_escape_string将数据放入数据库

时间:2015-03-30 13:45:27

标签: php

我正在使用一个简单的留言簿,我想用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']);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

由于这个问题不应该没有答案,所以决定发布以下内容:

mysql_real_escape_string是基于mysql_的函数,不能与mysqli_一起使用。那些不同的MySQL API不会相互混合。

因此,您需要在代码中将mysql_real_escape_string的所有实例更改为mysqli_real_escape_string

另外,请查看使用mysqli with prepared statementsPDO with prepared statements他们更安全