2013-12-23 96 views
1

我的查詢像SQL查詢列有特殊字符

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

如果我POST_TITLE = Ronald的生物數據,我不能就能夠插入,因爲在我的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 Injection攻擊,使用SQL字符串中的變量始終會發出潛在的漏洞。見例如this post替代品。