Mysql INsert appined var - PullRequest
       7

Mysql INsert appined var

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

Я не могу получить запрос на вставку одного из моих переменных во время его добавления. если я это сделаю, он вставит.

   preg_match_all("/<\s*p[^>]*>([^<]*)<\s*\/\s*p\s*>/", $new_post, $matches);

$article = ' ';

foreach ($matches[0] as $media){
$article .= $media;

}

$query = "INSERT INTO blog_post (date,article,link) VALUES('$date','$article','$guid_clean')";
mysqli_query($dbc,$query);

Все работает, т.е. я могу вывести $ article, и если я его жестко настрою и пропущу foreach, я даже могу вставить $ article. $ date и $ guid_clean работают нормально.

1 Ответ

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

Вы не экранировали свои входные переменные с помощью mysql_real_escape_string(), и вполне вероятно, что апостроф или одинарная кавычка в теле статьи нарушает и делает оператор SQL недействительным.

$article = mysql_real_escape_string($article);
// And if necessary if these came from user input...
$guid_clean = mysql_real_escape_string($guid_clean);
$date = mysql_real_escape_string($date);

$query = "INSERT INTO blog_post (date,article,link) VALUES('$date','$article','$guid_clean')";
mysqli_query($dbc,$query);
...