ddyg110 发表于 2016-12-26 00:10:23

关于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

ddyg110 发表于 2016-12-26 00:11:55

我单独新建一个$list2=('1','2','3')的数组 又正常不报错,使用var_dump输出了$list 和 $list2输出值没任何区别啊,都不是array吗?

Michael锐生 发表于 2016-12-26 09:05:41

ddyg110 发表于 2016-12-26 00:11
我单独新建一个$list2=('1','2','3')的数组 又正常不报错,使用var_dump输出了$list 和 $list2输出值没任 ...

看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的

ddyg110 发表于 2016-12-26 20:36:47

Michael锐生 发表于 2016-12-26 09:05
看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的 ...

可是却是有内容的呀,我用var_dump都打印出来。

ddyg110 发表于 2016-12-26 21:17:37

Michael锐生 发表于 2016-12-26 09:05
看提示是因为你的$list为空数组,括号里面没有内容的话,MySQL是无法执行的 ...

我输出$list 就是一个数组信息和我自己定义的$list2输出的信息是一模一样的。

所以我就纳闷就纳闷这,var_dump都能输出出来的数组,为什么到where_in里头就变成空数组了呢。

ddyg110 发表于 2016-12-26 21:36:24

关于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类型。

ddyg110 发表于 2016-12-26 22:42:05






输出来的都是array

但是执行这个就提示上面的错误,

$query=$this->db->select('*')->from($this->_operationbutton)->where_in('ID',$list)->get()->result_array();


如果换成$list2 就不报错。

Hex 发表于 2016-12-27 00:18:18

经过测试,我这里没有问题,下载一个干净的 CI 再试试呢?

Michael锐生 发表于 2016-12-27 10:49:24

ddyg110 发表于 2016-12-26 21:17
我输出$list 就是一个数组信息和我自己定义的$list2输出的信息是一模一样的。

所以我就纳闷就纳闷这, ...

是不是你方法是执行了多次,输出的时候是执行第一次,执行第二次的时候就出错,你可以设置断点然后一步一步调,看哪里出了问题
页: [1]
查看完整版本: 关于where_in中array的疑问