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条件参数为数组的主要内容,如果未能解决你的问题,请参考以下文章