我有这样的字符串:
SELECT * FROM `backplanechanneldecoder20141002` AND WHERE Z0 = '1'
我想从中删除AND。我尝试使用
$sql_total = str_replace("AND WHERE", "WHERE", $sql_total);
$sql_total = str_replace("AND WHERE", "WHERE", $sql_total);
但它没有用。
答案 0 :(得分:3)
看起来“AND”和“WHERE”之间有多个空格。您可以使用正则表达式处理此问题:
$sql_total = preg_replace('/AND\s+WHERE/', 'WHERE', $sql_total);
表达式的\s+
部分与一个或多个空格字符匹配。
正如评论中所提到的,目前还不清楚你是如何在第一时间结束这个字符串的。看起来好像是在尝试以编程方式生成查询字符串,但没有正确处理第一个/唯一的“WHERE”子句。解决这个问题的原因显然更好,而不是修复症状。