我有以下字符串:
$result = "category,date,product,cost
car,10/10/2005,toyota,3000
bike,12/12/2007,yamaha,1000";
我需要将字符串排列成插入数据库的最佳格式(需要高效,因为可能有很多数据,也不需要第一行)。
字符串在新行上,所以我可以:
$n = explode("'n", $result);
它的格式是:
[0] => category,date,product,cost
[1] => car,10/10/2005,toyota,3000
[2] => bike,12/12/2007,yamaha,1000
现在,我该如何将其格式化为插入数据库中,同样,解决方案需要高效(为了性能),而且我希望第一行不被插入,最后在插入时,我希望日期不被插入。
希望这是有意义的,谢谢你提前提供的帮助。
--------编辑---------------
该表(项)由以下字段构成:
category, product, cost
感谢
如果每次都有一个具有相同列的类似字符串,那么可以执行以下操作:
$n = explode("'n", $result);
// skip the first row since it's just column names
for ($i = 1; $i <= count($n); $i++)
{
$cat = $n[$i][[0]; // category
$date = $n[$i][[1]; // date
$prod = $n[$i][[2]; // product
$cost = $n[$i][[3]; // cost
// and you can put it into a query like so
$sql = "insert into myTable ('category', 'date', 'product', 'cost') values ('$cat', '$date', '$prod', '$cost')";
}
这能回答你的问题吗?
改进之前回答的帖子:
$n = explode("'n", $result);
// skip the first row since it's just column names
$sql = "insert into myTable ('category', 'date', 'product', 'cost') values ";
for ($i = 1; $i <= count($n); $i++)
{
$cat = $n[$i][[0]; // category
$date = $n[$i][[1]; // date
$prod = $n[$i][[2]; // product
$cost = $n[$i][[3]; // cost
$sql .= "('$cat', '$date', '$prod', '$cost'),";
}
$sql = trim($sql, ",");
if(count($n) != 0)
mysql_query($sql)
这只提供了一个将插入多行的查询。