如何传递json数组来选择查询

时间:2014-04-13 07:42:24

标签: php arrays json function

我有json数组,如下所示

$q=[{"con0":0},{"con1":1},{"con2":2}]

我想传递此数组以选择查询,其中查询如下

$query="select * from table_name where con0='0' and con1='1' and con2='2'";

我们应该使用json数组来创建这个查询吗?

3 个答案:

答案 0 :(得分:0)

使用json_decode使其成为一个对象/数组,然后使用循环为其创建一个字符串并附加到sql查询。

答案 1 :(得分:0)

JSON 解码数据循环到foreach内,然后获取键值对,将它们存储在数组中,并在循环结束后执行{{1}在带有implode()的数组上,现在将字符串传递给您的查询,如图所示。

AND

答案 2 :(得分:0)

这两个技巧是通过json_decode将json转换为php数组,然后使用reset()key()函数来获取列和条件。这是现场的例子: http://ideone.com/wp1kb1您可以详细了解key http://php.net/keyreset http://php.net/reset

    <?php


    $q='[{"con0":0},{"con1":1},{"con2":2}]';

    $ar = json_decode($q, true);

    $where = array();
    foreach ($ar as $condition) {
      $value = reset($condition);
        $column = key($condition); 
        $where[] = " `$column` = " . (int) $value;

    }
    $whereString = implode(' AND', $where);
    $query="select * from table_name where $whereString";
    echo "\n $query \n";