阵列以逗号分隔字符串

这是代码(我用笨):阵列以逗号分隔字符串

$sql = 'SELECT * FROM foo WHERE bar IN (?)'; 

$query = $this->db->query($sql, array($values));

所以$值是一个字符串数组,我想在SQL语句中,其中添加“?”是。当我尝试这个时,我得到一个“数组到字符串转换”的错误。有什么办法可以将$ values数组的值作为以逗号分隔的字符串添加到SQL语句中吗?

回答:

你为什么不使用简单的笨方法

$this->db->from('foo'); 

$this->db->where_in('bar',$values);

$query=$this->db->get();

这会产生什么你到底想要

更新
如果你严格要求自己的方式,你需要产生$ SQL这样

$sql = 'SELECT * FROM foo'; 

if(is_array($values)&&sizeof($values)>0)

{

$sql.=' WHERE bar IN (';

foreach($values as $key=>$value)

{

if($key==0)

{

$sql.='?';

}

else

{

$sql.=',?';

}

}

$sql.=')';

}

$query=$this->db->query($sql,$values);

回答:

您应该在查询中用逗号分隔字符串。为那个使用implode函数的php。

这样做:

$values = array('bar1', 'bar2', 'bar3'); 

$string = "'".implode("',", $values)."'";

然后通过字符串中的查询,

$sql = 'SELECT * FROM foo WHERE bar IN ($string)'; 

$query = $this->db->query($sql);

echo '<pre>'; print_r($query->result_array());

你会在$ query变量的数据。

如果需要,请告知我们以获得进一步的帮助。

以上是 阵列以逗号分隔字符串 的全部内容, 来源链接: utcz.com/qa/258221.html

回到顶部