-1

我正在尝试构建这样的 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 查询?

4

1 回答 1

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 语句中可能需要的任何字符串周围添加引号。

此外,如果这是用户提供的输入,则必须进行 清理以防止 SQL Injection

于 2013-08-01T16:43:51.303 回答