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