[英]Generating a sql query in php using for loop
代碼:
$nerd_result = mysql_query("select * from nerd_profile where nerd_reg_no = '$reg_no'");
$nerd_data = mysql_fetch_array($nerd_result);
$tags = array();
$tags = explode(",",$nerd_data['nerd_interests']);
for($i = 0; $i < sizeof($tags)-1; $i++)
{
if($i != sizeof($tags)-2)
{
$sub_query = $sub_query."`tags` like %".$tags[$i]."% or ";
}
else
{
$sub_query = $sub_query."`tags` like %".$tags[$i]."% ";
}
}
$proper_query = "select * from `qas_posts` where ".$sub_query." and `post_date` like '%$today%'";
$result = mysql_query($proper_query);
while($each_qas = mysql_fetch_array($result))
說明:
我在字符串中添加了like子句和php變量,並將其與其他帶有like子句的變量連接在一起。 最后,當我回聲時,我得到了想要的完美查詢,但是
mysql_fetch_array()
不接受該生成的查詢,而是如果我對其進行硬編碼,則可以正常工作,這是我做錯了什么? 我可以這樣做嗎?
在mysql中進行字符串比較時,您需要確保您在比較值兩邊加上引號。
$sub_query = $sub_query."`tags` like '%".$tags[$i]."%' or ";
和
$sub_query = $sub_query."`tags` like '%".$tags[$i]."%' ";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.