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

时间:2013-02-21 19:31:39

标签: php arrays string explode

我有以下字符串:

$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

感谢

2 个答案:

答案 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)

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