我们如何用PHP交错数组?

时间:2013-08-01 16:31:40

标签: php mysql arrays

我正在尝试构建一个这样的SQL语句:

INSERT INTO mytable(`People`, `Places`, `Ideas`)
       VALUES ('40', '15',  null),
              (null, '5',   '10'),
              ('10',  null, '11');

我们有三个具有以下值的数组....

$people = array('45','null','10');
$places = array('15','5','null');
$ideas = array('null','11');

如何从我的数组中构建相应的SQL查询?

1 个答案:

答案 0 :(得分:0)

implode让这一切变得简单:

$query = 'INSERT INTO mytable(`People`, `Places`, `Ideas`) VALUES ';

$value_arrs = array($people, $places, $ideas);
$value_arrs_size = count($value_arrs);

for ($i = 0; $i < $value_arrs_size; ++$i) {
    $query .= '(' . implode(', ', $value_arrays[$i]) . ')';

    if ($i < $value_arrs_size - 1) {
        $query .= ', ';
    }
}

只有您的值全部为数字或null时,此功能才有效。您需要在SQL语句中的任何字符串周围添加引号。

此外,如果这是用户提供的输入,则必须 sanitize to prevent SQL Injection