Код работает нормально, если я не использую функцию 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("Ymd 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"); ?>
Вам необходимо передать соединение с функцией
$title = mysqli_real_escape_string($con, $_POST["title"]);
Согласно 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.
php.net говорит
Процедурный стиль
mysqli_real_escape_string ( mysqli $link , string $escapestr )
Поэтому вам нужно добавить к нему $ con:
$title = mysqli_real_escape_string($con, $_POST["title"]);