我的查詢像SQL查詢列有特殊字符
$insert_query = "insert into post (post_title) values ('$post_title')";
如果我POST_TITLE = Ronald的生物數據,我不能就能夠插入,因爲在我的POST_TITLE特殊字符「的元組。
應該如何解決這個問題?先謝謝你!
我的查詢像SQL查詢列有特殊字符
$insert_query = "insert into post (post_title) values ('$post_title')";
如果我POST_TITLE = Ronald的生物數據,我不能就能夠插入,因爲在我的POST_TITLE特殊字符「的元組。
應該如何解決這個問題?先謝謝你!
使用預處理語句到您的查詢自動跳脫參數
$stmt = $dbh->prepare("insert into post (post_title) values (?)";
$stmt->bindParam(1, $post_title);
$stmt->execute();
你能解釋一下什麼是$ dbh? –
'$ dbh'是數據庫處理程序。 [這裏是一個很好的快速教程](https://php.net/manual/en/mysqli.quickstart.prepared-statements.php) –
考慮使用$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替代品。
如果我會給你解決方案,你可以存儲特殊字符也DB然後呢? –
我認爲你的問題是你無法存儲價值,或者你不想存儲 –