PHP mysqli_real_escape_string返回空字符串

时间:2013-07-24 16:22:15

标签: php mysql

如果我不使用mysql_real_escape_string函数,代码可以正常工作。但功能是什么都没有回来!我读到这个问题可能是因为我没有mysql连接,但事实并非如此!

请帮忙!

<?php
$con=mysqli_connect("localhost","root","pwd","mysql");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$title = mysqli_real_escape_string($_POST["title"]);
$comment = mysqli_real_escape_string($_POST["comment"]);
$type = $_POST["type"];
$time = date("Y-m-d H:i:s");


$sql="INSERT INTO posts
VALUES
('','$type','$time','$time','$title','$comment','0','0','0','0','0')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }



mysqli_close($con);
header ("location: index.php");
?>

3 个答案:

答案 0 :(得分:8)

您需要将连接传递给函数

$title = mysqli_real_escape_string($con, $_POST["title"]);

答案 1 :(得分:2)

根据http://php.net/manual/en/mysqli.real-escape-string.php,您需要传递两个参数,除非您使用面向对象的样式。您应该使用以下格式:

mysqli_real_escape_string($ link,$ escapestr)

其中$ link是:mysqli_connect()或mysqli_init()返回的链接标识符

$ escapestr是:要转义的字符串。编码的字符是NUL(ASCII 0),\ n,\ r,\,',“和Control-Z。

答案 2 :(得分:0)

php.net says
程序风格
mysqli_real_escape_string ( mysqli $link , string $escapestr )
因此,您需要将$ con添加到其中:
$title = mysqli_real_escape_string($con, $_POST["title"]);