我在网页上创建了一个搜索工具栏,允许用户识别要搜索的列,以及用于搜索该列的操作符。为了避免使用大量的if语句,我想写这样的SQL:
if ($operator == "LIKE") {
sql = "SELECT * FROM `mytable` WHERE `$column` '$operator' '%$search%'";
} else {
sql = "SELECT * FROM `mytable` WHERE `$column` '$operator' '$search'";
}
如果操作符是LIKE,这可以正常工作,但是当它是=时,它不起作用。我检查了发布到页面的数组,并确认数组正在发布。如果操作员是" ="我该如何工作呢? ?这是数组:
Array
(
[column] => first_name
[operator] => =
[search] => paul
[page_rows] => 10
)
答案 0 :(得分:0)
它会在运营商周围删除'
:
if ($operator == "LIKE") {
sql = "SELECT * FROM `mytable` WHERE `$column` $operator '%$search%'";
} else {
sql = "SELECT * FROM `mytable` WHERE `$column` $operator '$search'";
}
但也许最好只使用:
if ($operator == "LIKE") {
sql = "SELECT * FROM `mytable` WHERE `$column` LIKE '%$search%'";
} else {
sql = "SELECT * FROM `mytable` WHERE `$column` = '$search'";
}
答案 1 :(得分:0)
请勿在{{1}}上使用单引号'
。最好直接使用$operater
或LIKE
。