我有json数组,如下所示
$q=[{"con0":0},{"con1":1},{"con2":2}]
我想传递此数组以选择查询,其中查询如下
$query="select * from table_name where con0='0' and con1='1' and con2='2'";
我们应该使用json数组来创建这个查询吗?
答案 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/key和reset
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";