我在PHP函数中有很多条件,每个条件都生成一个mysql查询。除了一个以AND
运算符结尾的查询外,所有条件都正常工作。在返回查询结果之前,我需要检查查询是否以{结尾{1}}它应该删除AND
,然后返回查询
这是查询的示例:
AND
如果产生这种查询,我需要这样做:
1 - 如果以$query="select * from case where case_name='name' AND case_status='102' AND";
结束
2 - 删除AND
3 - 在没有最后AND
的情况下返回查询
结果应该是这样的:
AND
我没有太多使用PHP函数的经验。我怎么能这样做?
向你求助。
答案 0 :(得分:0)
试试这个,
$query="select * from case where case_name='name' AND case_status='102' AND"
$query = trim($query,'AND');
答案 1 :(得分:0)
快速修复:
$query = preg_replace( "/AND$/", "", $query);
你应该修复条件的逻辑。 喜欢
$cond[] = "....";
$cond[] = "...."
....
然后
$query = $query_first_half + implode ( " AND " , $cond );
最后请使用像PDO一样的SQL库
答案 2 :(得分:0)
爆炸字符串并弹出最后一个元素。
$arr = explode(" ", $query);
$last = array_pop($arr);
if($last != "and")
{
array_push($arr,$last);
}
$query = implode(" ",$arr);
运行$ query它应该工作
答案 3 :(得分:0)
首先你的表名CASE
是mysql reserved keyword你应该将你的表重命名为其他东西或者用反引号来表示它
您可以在没有AND的情况下使用查询,当您添加其他查询时,只需从AND开始。
$query="select * from `case` where case_name='name' AND case_status='102'";
$query .= " AND .........";
如此相似,你的条件不正确,那么只有第一个查询才有效,如果条件为真则第二个查询将起作用,它以AND开始。你不需要删除AND。