如何写这个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'];'。 –