如何在SQL查询中使用存储等号的变量

时间:2014-09-03 15:45:32

标签: php sql

我在网页上创建了一个搜索工具栏,允许用户识别要搜索的列,以及用于搜索该列的操作符。为了避免使用大量的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
)

2 个答案:

答案 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​​}}上使用单引号'。最好直接使用$operaterLIKE