是否有一个技巧或函数在php字符串中插入元素?

时间:2015-06-23 09:32:12

标签: php mysql string

我想动态修改SQL查询的语法 例如:

$var = SELECT * FROM schools WHERE teacher = 1 OR teacher = 2 AND student = 1 OR student = 2 OR student = 3 AND classroomId = 12

所以在上面的例子中,我想在括号中对OR进行分组,否则查询结果将不正确。

我想通过查询的函数或脚本动态转换为:

$var = SELECT * FROM schools WHERE (teacher = 1 OR teacher = 2 ) AND (student = 1 OR student = 2 OR student = 3) AND classroomId = 12

有可能吗?

1 个答案:

答案 0 :(得分:0)

你可以做到这一点

$arr = array (
   "teacher" => array(1,2),
   "student" => array(1,2,3),
   "classroomId" => array(1)
   );

function mylist ($array) {
    foreach ($array as $name => $arr) {
      foreach ($arr as &$item) 
        $item = $name . '=' . $item;
      $or[] =  '(' . implode(' OR ', $arr) . ')';
    }
    return implode(' AND ', $or); 
}


echo 'SELECT * FROM schools WHERE '. mylist($arr);

resuде

SELECT * FROM schools WHERE (teacher=1 OR teacher=2) AND (student=1 OR student=2 OR student=3) AND (classroomId=1)