我有以下字符串:
$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
感谢
答案 0 :(得分:0)
如果您每次都要使用相同列的类似字符串,那么您可以执行以下操作:
$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')";
}
这会回答你的问题吗?
答案 1 :(得分:0)
从先前回复的帖子改进:
$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_qiery($sql)
这只为您提供了一个插入多行的查询。