【发布时间】:2013-12-09 19:17:19
【问题描述】:
public function func1()
{
$this->func();
$result1 = $this->result;
foreach ($result1 as $row) {
$this->load->model('test_model');
$this->db->select('name');
$this->db->from('place');
$string = '';
$string = $row[state_name];
$this->db->where('state'=,"$string");
$query = $this->db->get();
return $query->result_array();
}
}
其中$this->func(); 正在获取一个包含名称字符串数组的数组,我在func1(select) 的where 子句中使用每个值作为条件。我正在使用foreach 循环从func 的结果集中获取每个字符串,稍后我尝试从func1 中的where 子句中选择一个匹配的名称,但我遇到了错误
A Database Error Occurred
Error Number: 1064
SELECT `name` FROM (`place`) WHERE `state=` 'place1,place2, place3,place4';
来自foreach 的所有值都被附加到同一个查询中,在我的例子中,每次迭代应该只获取一个值并执行SELECT 查询并返回结果。
【问题讨论】:
-
$this->db->where('state'=,"$string");是错字吗?因为=在'state'之外。这里还有一个错字$string = $row[state_name];除非state_name是一个常数? -
$this->db->where('state',"$string");remove= -
另外,我猜 $this->func 不是返回一个值数组,而是所有附加的值,检查你的 func() 看看它返回什么,并更正你提到的 where 语句作者:努尔
标签: php mysql sql arrays codeigniter