PDO: вставить запрос, содержащий 'не выполняется в SQLite3 с PHP 5.3.4 с - PullRequest
0 голосов
/ 07 апреля 2011

Я создаю приложение для ведения блога, используя PHP5 / SQLite3.Чтобы вставить сообщение в базу данных, я выполняю запрос, написанный ниже.

$db=connectToDatabase();
$tempcontent=$db->escapeString($tempcontent);
$query = "INSERT INTO posts VALUES (null,$temptitle, $tempcontent, $tempcategory, $tempauthor)";
$db->query($query);
$db=disconnectToDatabase();

У меня возникла проблема, когда текстовый ввод содержит «или». Когда есть », запрос вообще не выполняется. Если'not not then' отображается с escape (\ ") в браузере. Извините, я забыл упомянуть: функция connectTodatabase () обеспечивает очень общий способ подключения к базе данных. as:

try {
  $db1 = new PDO("sqlite:blog.db");
}catch( PDOException $exception ){
  die($exception->getMessage());
}
return $db1;

1 Ответ

0 голосов
/ 07 апреля 2011

Просто опубликуйте весь класс, потому что мы здесь не читатели и не экстрасенсы.

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

Используйте либо mysql_real_escape_string ():

http://php.net/manual/en/function.mysql-real-escape-string.php

Или подготовленные PDO заявления:

http://www.php.net/manual/en/pdo.prepare.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...