Php 为什么这个查询(Mysql)没有';不行?

Php 为什么这个查询(Mysql)没有';不行?,php,mysql,Php,Mysql,这是我的查询(Mysql) 我想在WHERE子句中添加一个条件,我的条件是(WHERE State='3'),我是这样做的: $query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State FROM articles

这是我的查询(Mysql)

我想在WHERE子句中添加一个条件,我的条件是(WHERE State='3'),我是这样做的:

$query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State
                              FROM articles
                              WHERE State='3' AND Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\'
                              ORDER BY CASE WHEN Titre LIKE \'' . safe( $_POST['q'] ) . '%\' THEN 0 
                              WHEN Titre LIKE \'%' . safe( $_POST['q'] ) . '\' THEN 1 
                              ELSE 2 END';

此查询显示一些状态不等于3的结果,似乎不关心条件(其中State='3')

就像上面提到的putvande一样,请尝试以下操作:

$query_Search = 'SELECT ID, Titre , Categorie, Description, Province , Com_Territ, Type_Annonce, Prix, Devise, Date, State
                          FROM articles
                          WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\' )
                          ORDER BY CASE WHEN Titre LIKE \'' . safe( $_POST['q'] ) . '%\' THEN 0 
                          WHEN Titre LIKE \'%' . safe( $_POST['q'] ) . '\' THEN 1 
                          ELSE 2 END';

WHERE
语句中有
,因此可以得到
State=3的列!还有别的。
添加一些
将您的语句分组如下:

WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\')

好。。你也有一些
在那里..谢谢,这是新手犯的错误
WHERE State='3' AND (Titre LIKE \'%' . safe( $_POST['q'] ) . '%\' OR Categorie LIKE \'%' . safe( $_POST['q'] ) . '%\')