【问题标题】:is there a trick or a function to insert elements in a php string?是否有在 php 字符串中插入元素的技巧或函数?
【发布时间】:2015-06-23 09:32:11
【问题描述】:

我想动态修改 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

有可能吗?

【问题讨论】:

  • 你想做什么?
  • 不要忘记你在 var 值周围的引号:$var = "..."
  • 一旦有OR条件,我想修改变量的内容

标签: php mysql string


【解决方案1】:

你可以这样做

$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);

回复

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    相关资源
    最近更新 更多