php sql条件参数为数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php sql条件参数为数组相关的知识,希望对你有一定的参考价值。

php中,一个类似递归的树形节点,查询条件 id是数组Array ( [0] => Array ( [cat_id] => 2 ) [1] => Array ( [cat_id] => 3 ) ) 为2或者3,要怎么解决呢,尽量用循环

1、将二维数组转换为一维数组

$arr_2 (这是二维数组,就是你上边那个类型的,我这里就不贴了)
$arr_1 (这个保存转化后的一维数组)

下面是二维转化一维数组过程:
for($i=0;$i<count($arr_1);$i++)
$arr[] = $arr_2[$i]['cat_id'];


下面是循环输出一维数组:

foreach($arr_1 as $key=>$val)
echo $key . '<br>' .$val;


输出结果是所有的cat_id 键值。至于sql 中的循环,我想你看了这个以后应该会了。
原理就是将二维转换为一维数组,然后根据条件实现循环查询。这个转化的过程,你可以使用for循环,也可以使用php自带的合并数组函数,也可以使用高级点的spl高级数组合并。当然看你程序需要,如果是应用比较简单的,循环是最佳选择。

另外,邀请你加入我们php实验室,相互学习。在此,祝圣诞快乐。
参考技术A 这是一个二维的数组,数组是可以多维的,其实最终的实现还是一维,说多了.额.如果不懂数组的概念,建议还是多看资料,多做例子,我可以这样写SQL条件cid=Array ( [0] => Array ( [cat_id] => 2 ) [1] => Array ( [cat_id] => 3 ) ) ;sql=cd[0][cat_id]这样cat_id的值就为2了 参考技术B foreach($arr as $key)
mysql_query('select * from table where id='.$key);

参考技术C 用 foreach啊
没啥说的

php之PDOStatement::execute数组参数带有键值会出错

当预处理的SQL语句是用问号占位符时,如果是用数组传参的,数组里不要带有键值,否则无法执行SQL。

出错的代码如下:

$test = new PDODB();
$param=["d"=>"2020-1-13","e"=>2,"f"=>2,"g"=>2];
$sql1 = "insert into hk49x7_bns (killmode,killmodecode,fenshu,bns) values(?,?,?,?)";
$result=$test->my_prepare($sql1,$param);

这样没有任何提示,没有执行SQL语句。

以上是关于php sql条件参数为数组的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis传入参数为集合数组SQL写法

MyBatis传入参数为集合数组SQL写法

如何在php中更改数组推送的结果[重复]

php如何循环一个数组,当找到一个对应条件时候,就会终止循环。。

php中的SQL查询与数组中的谓词

mybatis条件语句中带数组参数