如何将数组放入MySQL?

时间:2014-08-11 05:34:19

标签: php mysql sql arrays

我有一个数组

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)

我知道我们必须使用内爆并爆炸,但我不知道如何实现它们。

3 个答案:

答案 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)

imploadFIND_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 )