2013-07-24 6 views
1

Код работает отлично, если я не использую функцию mysql_real_escape_string. Но функция ничего не возвращает! Я читал, что проблема может быть связана с тем, что у меня нет соединения mysql, но это, похоже, не так!PHP mysqli_real_escape_string, возвращающий пустую строку

Пожалуйста, помогите!

<?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"); 
?> 
+0

Почему вы избегаете' $ _POST ["title"] ', но не' $ _POST ["type "]'? – cdhowie

ответ

8

Вам необходимо пройти соединение с функцией

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

Большое вам спасибо, что сработал! –

+0

Нажмите на галочку, чтобы принять его ответ :) – sqram

+0

ya Я знаю, мне пришлось подождать 8 минут, прежде чем я смог принять его :) –

0

php.net says
Процедурный стиль
mysqli_real_escape_string (mysqli $link , string $escapestr)
Так что вам нужно будет добавить $ CON к нему:
$title = mysqli_real_escape_string($con, $_POST["title"]);

2

Согласно http://php.net/manual/en/mysqli.real-escape-string.php вам нужно передать два параметр, если вы не используете объектно-ориентированный style.You следует использовать формат:

mysqli_real_escape_string ($ ссылку, $ escapestr)

Где $ ссылка: Идентификатор ссылки возвращаемого mysqli_connect() или mysqli_init()

И $ escapestr is: Строка, которую нужно экранировать. Закодированные символы: NUL (ASCII 0), \ n, \ r, \, ', "и Control-Z.