2013-12-23 3 views
1

мой запрос, какSQL для запроса столбцы с особым характером

$insert_query = "insert into post (post_title) values ('$post_title')"; 

Если мой POST_TITLE = био-данные Рональда, я не смог бы вставить кортеж из-за особого характера "в моем POST_TITLE.

Как решить эту проблему? Заранее спасибо!

+0

Если я дам вам решение, вы можете сохранить специальный символ также DB Затем? –

+0

Я думаю, что ваша проблема в том, что вы не можете сохранить ценность или не хотите хранить –

ответ

3

Использование Подготовленные выражения автоматически избежать параметров в запросах

$stmt = $dbh->prepare("insert into post (post_title) values (?)"; 
$stmt->bindParam(1, $post_title); 
$stmt->execute(); 
+0

, можете ли вы объяснить немного больше о том, что такое $ dbh? –

+0

'$ dbh' - обработчик БД. [здесь есть хороший быстрый учебник] (https://php.net/manual/en/mysqli.quickstart.prepared-statements.php) –

0

Рассмотрим с помощью функции $mysqli->real_escape_string(String).

$post_title = $mysqli->real_escape_string($post_title); 
$insert_query = "insert into post (post_title) values ('$post_title')"; 

См. here для получения дополнительной информации.

Обратите внимание, что использование переменных в SQL-строках всегда испускает потенциальную уязвимость из-за атак SQL Injection. См. this post для альтернатив.

Смежные вопросы