Синтаксическая ошибка MySQL в экранированной строке - PullRequest
0 голосов
/ 23 января 2012

MySQL выдает 1064 на экранированной строке.

$date is set above.
$article_clean = mysqli_real_escape_string($dbc,$article);
$guid_clean= mysqli_real_escape_string($dbc,$guid_clean);
$pub_date_clean = mysqli_real_escape_string($dbc,$pub_date);
$title_clean = mysqli_real_escape_string($dbc,$title);
$query = "INSERT INTO blog_post (date,article,link,pub_date,title) VALUES ('$date',$article_clean','$guid_clean','$pub_date_clean','$title_clean')";

mysqli_query($dbc, $query);

Почему?

Ответы [ 3 ]

1 голос
/ 23 января 2012
$query = "INSERT INTO blog_post (blah blah) VALUES ('$date',$article_clean', ...)";
                                                            ^

У вас нет вступительной цитаты для этого аргумента. Вам нужно добавить один.

Кроме того, это утверждение выглядит подозрительно:

$guid_clean = mysqli_real_escape_string ($dbc, $guid_clean);

Все остальные действуют на «нечистую» версию, чтобы произвести чистую. Если вы уже не установили guid_clean, то , вероятно, должно быть:

$guid_clean = mysqli_real_escape_string ($dbc, $guid);

Как я уже сказал, это не обязательно дело, но я бы проверил это, чтобы убедиться.

1 голос
/ 23 января 2012

Вы пропустили одну кавычку. Перепишите строку запроса с помощью этой строки: -

$query = "INSERT INTO blog_post (date,article,link,pub_date,title) VALUES ('$date','$article_clean','$guid_clean','$pub_date_clean','$title_clean')";
0 голосов
/ 23 января 2012

Попытайтесь получить лучшую PHP IDE, чтобы легко справиться с этими проблемами.

...