if语句在where子句中mysql语法错误

时间:2018-06-27 23:49:22

标签: php mysql if-statement where where-clause

我正在尝试在MySQL中使用if条件。我收到语法错误。我尝试查看了很多其他有关Stack Overflow的讨论,但无法弄清楚。谁能帮我吗?

这是我的代码:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$query = "SELECT * FROM table
WHERE branch='$branch' and testcase like 
IF(isset(_$POST['testcase']),'$_POST['testcase']','1=1')";
....
}

我想在WHEREbranch='$branch'之间的testcase中进行和运算,具体取决于是否以我的形式选择了天气。如果选择它,我要在branch和testcase的值之间进行and操作。如果没有,我只想过滤出$branch值的结果。

2 个答案:

答案 0 :(得分:0)

Isset不是mysql命令,而是php命令。您需要先构建变量。

$bleach = false

IF(isset($_POST['testcase'])
{
$bleach = $_POST['testcase']
}
Else 
{
$bleach=1
}

然后将$ bleach传递到您的查询中

答案 1 :(得分:-1)

如果我正确理解,您是否希望根据是否设置了testcase值进行动态查询?

如果是这种情况,您可以尝试以下方法:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$testcase = "";

 if (isset($_POST['testcase'])) {
    $testcase = "and testcase like '" . $_POST['testcase'] . "'";
 }

 $query = "SELECT * FROM table
 WHERE branch='$branch' $testcase";

这样,如果设置了测试用例值,它将在查询的$testcase部分中设置and testcase like。如果未设置,那么它将是一个空字符串,将仅使$query的值保留在$branch中。