我有一个数组
variable $smt_database = 257, 259, 261
Array ( [0] => 257, 259, 261 )
如何在数据库中插入此变量$ smt_database,如下所示:
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN ($smt_database)";
当我回显sql时,它显示如下数组:
SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (Array)
我怎么能改变所以它可以像下面的sql:
SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (257, 259, 261)
我知道我们必须使用内爆并爆炸,但我不知道如何实现它们。
答案 0 :(得分:2)
简单使用implode
$in_text = implode(",", $smt_database);
// now use this variable in sql like
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN ($in_text)";
如果数组中的值是数字,则上面的将起作用
因此,如果数组中的值不是数字,则需要在值上单引号
更新2:
$new_array = array();
foreach($your_array as $val)
{
$new_array[] = "'".$val."'";
}
// now use implode
$in_text = implode(",", $new_array);
// now use this variable in sql
答案 1 :(得分:1)
与impload
和FIND_IN_SET
一起使用,因为IN
运算符不适用于字符串值。
$your_text = implode(",",$smt_database);
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE FIND_IN_SET(member_id,$your_text)";
答案 2 :(得分:1)
使用此:
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (".$smt_database[0].")";
假设您有数组 $smt_database = Array ( [0] => 257, 259, 261 )