如何将Mysql INSERT转换为PHP数组以插入循环?

时间:2014-03-26 14:29:00

标签: php mysql

INSERT INTO `users` (`id`, `login`) VALUES(1, 'test1'), (2, 'test2'),  (3, 'test3'), (4, 'test4'), (5, 'test5')

如何将这个简单的插入转换为php数组,以便在我的if条件下插入循环?

2 个答案:

答案 0 :(得分:0)

您只需使用以下内容即可;

$values = array(
     '1' => 'test1',
     '2' =>'test2',
     '3' => 'test3', 
     '4' => 'test4',
     '5' => 'test5'
     );

 $sql = "INSERT INTO `users` (`id`, `login`) VALUES";
 foreach ($values as $k => $v) {
    $sql .= "(" . $k . ", '" . $v . "')";
 }

如果您提供更多详细信息"您的if条件",它将会更新

答案 1 :(得分:0)

Huseyin非常接近,但是我修改了代码,因为你最终没有逗号来划分插入,这是必需的。

要解决此问题,您可以收集数组中的值,然后使用implode()在mysql中添加逗号。

$values = array#
(
    "1" => 'test1',
    "2" => 'test2',
    "3" => 'test3', 
    "4" => 'test4',
    "5" => 'test5',
);

$collect = array();

foreach ($values as $k => $v) 
{
    $collect[] = "(" . $k . ", '" . $v . "')";
}

$sql = "INSERT INTO `users` (`id`, `login`) VALUES " . implode(", ", $collect);