如何寫這個MySQL查詢MySQL的選擇LIKE原因,如何用PHP編寫
SELECT * FROM `content`WHERE `language_option_tag` LIKE "%English%"
到PHP代碼,我只能選擇哪些用戶已通過FORM
$sql .= 'SELECT * FROM `content` WHERE `language_option_tag` LIKE "%' .$lang_name. '%" ;
如何寫這個MySQL查詢MySQL的選擇LIKE原因,如何用PHP編寫
SELECT * FROM `content`WHERE `language_option_tag` LIKE "%English%"
到PHP代碼,我只能選擇哪些用戶已通過FORM
$sql .= 'SELECT * FROM `content` WHERE `language_option_tag` LIKE "%' .$lang_name. '%" ;
$lang_name = $_POST['your_lang'];
$sql = "SELECT * FROM content WHERE `language_option_tag` LIKE '%$lang_name%'" ;
一直POST數據
小心確保'$ lang_name'已正確轉義;更好地參數化一個準備好的陳述。 – eggyal
這與OP的查詢相同。 –
您錯過了一個bcaktick,也許它只是一個錯字,但這是導致錯誤,並且您使用的方式應該不同,如下更改
$sql .= 'SELECT * FROM `content` WHERE `language_option_tag` LIKE '% .$lang_name. %' ;
^here is missing backtick `. ^here there was a mistake
然後我想記住你,你是在sql injection
風險,這裏有How can I prevent SQL injection in PHP?看看。您應該使用準備statment以避免任何風險
如果你看[OP的原始文章的來源](http://stackoverflow.com/revisions/2ad17242-d6ce-49e6-a384-7fa5ec815818/view-source),很明顯,錯字是簡單的降價格式; LIKE後面的「錯誤」不是錯誤 - 必須引用SQL字符串文字。 – eggyal
$dbconnection= mysqli_connect("localhost", "my_user", "my_password", "dbname");
$lang = $_POST["lang"];
$lang = mysqli_real_escape_string($dbconnection, $lang); // To prevent SQL injection
$sql = "SELECT * FROM content WHERE `language_option_tag` LIKE '%$lang%'" ;
關於mysqli的訪問http://php.net/manual/en/mysqli.real-escape-string.php
$lang_name = mysql_real_escape_string($_POST['selected_your_lang']);
$sql = "SELECT * FROM content WHERE `language_option_tag` LIKE '%$lang_name%'";
注的用法:總是使用mysql_real_escape_string()的時候,你是從傳遞數據form..to停止SQL注入。
mysql_real_escape_string已棄用並使用它不是一個好主意 – Ergec
是什麼問題?查詢是正確的/ –
是查詢是工作,但我想顯示哪個用戶已經從表單中選擇併發送POST方法到PHP的結果,所以我會將「%English%」替換爲「%」。$ lang_name。'%「和它顯示所有的數據。 – ahkeno
使用這個'$ lang_name = $ _POST ['your_lang'];'。 –