关于where_in中array的疑问
$arr=$this->db->select(*)->from($_table)->get()->result_array();$list=array_column($arr,'关联字段int类型');
$query=$this->db->select('*')->from('表名')->where_in('ID',$list)->get()->result_array();
不是说好的where_in('字段',array)的吗?为什么这样还会报错呢?
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3
SELECT * FROM `operationbutton` WHERE `ID` IN()
Filename: C:/wwwroot/Task/system/database/DB_driver.php
Line Number: 691
我单独新建一个$list2=('1','2','3')的数组 又正常不报错,使用var_dump输出了$list 和 $list2输出值没任何区别啊,都不是array吗? ddyg110 发表于 2016-12-26 00:11
我单独新建一个$list2=('1','2','3')的数组 又正常不报错,使用var_dump输出了$list 和 $list2输出值没任 ...
看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的 Michael锐生 发表于 2016-12-26 09:05
看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的 ...
可是却是有内容的呀,我用var_dump都打印出来。 Michael锐生 发表于 2016-12-26 09:05
看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的 ...
我输出$list 就是一个数组信息和我自己定义的$list2输出的信息是一模一样的。
所以我就纳闷就纳闷这,var_dump都能输出出来的数组,为什么到where_in里头就变成空数组了呢。
关于where_in中array的疑问
$arr=$this->db->select(*)->from($_table)->get()->result_array();$list=array_column($arr,'关联字段int类型');
$query=$this->db->select('*')->from('表名')->where_in('ID',$list)->get()->result_array();
不是说好的where_in('字段',array)的吗?为什么这样还会报错呢?
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3
SELECT * FROM `operationbutton` WHERE `ID` IN()
Filename: C:/wwwroot/Task/system/database/DB_driver.php
Line Number: 691
我单独新建一个$list2=('1','2','3')的数组 又正常不报错,使用var_dump输出了$list 和 $list2输出值没任何区别啊,都不是array吗?
备注 $list输出是有值的 也是array类型。
输出来的都是array
但是执行这个就提示上面的错误,
$query=$this->db->select('*')->from($this->_operationbutton)->where_in('ID',$list)->get()->result_array();
如果换成$list2 就不报错。
经过测试,我这里没有问题,下载一个干净的 CI 再试试呢? ddyg110 发表于 2016-12-26 21:17
我输出$list 就是一个数组信息和我自己定义的$list2输出的信息是一模一样的。
所以我就纳闷就纳闷这, ...
是不是你方法是执行了多次,输出的时候是执行第一次,执行第二次的时候就出错,你可以设置断点然后一步一步调,看哪里出了问题
页:
[1]