我有一个显示以下字符串的变量:
$item_value = itemOne,itemTwo,itemThree
我想获取此字符串并将每个项目作为单个列的单独行条目插入。另外,我需要它为每个条目插入一个自动增量键值。所以要完成这个例子,这就是我希望mysql表在完成时的样子:
ID || item_value || comments
----------------------------------------
1 || itemOne || --------------
2 || itemTwo || --------------
3 || itemThree || --------------
我的感觉是我需要在逗号周围爆炸字符串,然后将其插入表中。我试过这个但是在将每个项目作为单独的行条目时遇到了一些问题。非常感谢任何帮助。
答案 0 :(得分:2)
对于自动增量我建议让数据库处理它,因为mysql只是在id字段上用AUTO_INCREMENT声明它,对于postgres你可以将数据类型设置为serial,至于分隔每一行使用php explode函数< / p>
这是一个小例子
<?php
$dbh = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
$query = "INSERT into my_table (item_value) VALUES (?)";
$data = 'itemOne,itemTwo,itemThree,itemFour';
$st = $dbh->prepare($query);
foreach(explode(',', $data) as $r) {
// user array($r) for php 5.3 or lower
$st->execute([$r]);
}
这使用PDO,这是处理数据库连接的推荐方法
答案 1 :(得分:1)
这样的事情应该将它们分开并提供在db中插入的选项:
<?php
$item_value = 'itemOne,itemTwo,itemThree';
$item_array = explode(",",$item_value);
foreach($item_array as $key => $value){
// insert into the db here
$query = "INSERT INTO table_name set item_value = '".mysql_real_escape_string($value)."', ID = '".($key + 1)."'";
// however you choose to connect and insert into the database goes here :)
}
?>