1

我有一些如下要求:

$input  = "$POS,1234,5223,A,2719";

如果收到上述请求,请使用以下代码处理保存到数据库:

$input_ex = explode(",", $input);

$input_ex[0];
$input_ex[1];
$input_ex[2];
$input_ex[3];
$input_ex[4];

mysql_query("INSERT INTO table_name (cl_1,cl_2,cl_3,cl_4,cl_5)
values ('$input_ex[0]','$input_ex[1]','$input_ex[2]','$input_ex[3]','$input_ex[4]')

问题:
我的输入有时可能不止一个,并用“#”字符分割
最后一行输入可能也有“#”字符

$input  = "$POS,1234,5223,A,2719#
$POX,752,4342,N,SXD#
$POZ,122,6242,B,XFB#";

如何分隔每一行并将其作为新行插入数据库?
谢谢 ;)

编辑: 输入是 3 种不同的模式,第 1 行是没有任何#符号的单行,第 2 行是在最后一行有更多行# ,第 3 行在最后一行末尾没有#符号

4

4 回答 4

2
foreach (explode('#', $input) as $record) {
  $record = trim($record);

  if ($record == '')
    continue;

  $input_ex = explode(',', $record);

  $input_ex[0];
  $input_ex[1];
  $input_ex[2];
  $input_ex[3];
  $input_ex[4];

  // Same MySQL query as you already have
  mysql_query("...");
}
于 2012-07-18T18:38:10.633 回答
0

首先按“#”展开,然后为每个结果按“,”展开并添加新行

于 2012-07-18T18:36:58.387 回答
0

只需先在“#”上爆炸,然后像您正在做的那样循环遍历在“,”上爆炸的结果数组,并为每一行进行插入。

于 2012-07-18T18:37:50.063 回答
0

您将需要使用explode()两次。首先检查多条记录,然后再一次在分隔符上拆分,

<?php  
$input  = "POS,1234,5223,A,2719# POX,752,4342,N,SXD# POZ,122,6242,B,XFB#";

foreach(explode('#', $input) as $records){
    $record = explode(',', $records);
    print_r($record);
}
?> 
于 2012-07-18T18:41:43.400 回答