使用php格式化字符串以插入到mysqldb中


Format string using php to insert into mysql db

我有以下字符串:

$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)

这只提供了一个将插入多行的查询。