我从不使用php,我必须做一些简单的事情;我必须取一个字符串,子字符串,爆炸它,然后爆炸我在第一个爆炸后找到的数组的字符串。最后,我必须将字符串保存在db中。这是密码;
mysql_connect("xxx.xx.xx.xx:xxxx","xxxx","xxxxxx");
mysql_select_db("app");
$stringa = substr($rawData, 12, -1); //works
$prima_sep = explode("%%", $stringa); //works
$i = 0;
while ($i < count($prima_sep)) {
$a = 0;
$b = 1;
$seconda_sep = explode("&&", $prima_sep[$i]);
mysql_query("INSERT INTO test (DATA, STRING) VALUES ('".$seconda_sep[$a]."', '".$seconda_sep[$b]."')");
$i++;
}$rawDate看起来像这样
"stringa":"22/5/2014&&blablabla%%23/5/2014&&bla1bla1bla1"我不明白为什么我用这个:
mysql_query("INSERT INTO test (DATA, STRING) VALUES ('ok', '".count($seconda_sep)."')");计数($prima_sep)=2,我正确地在db中找到了2行,但是如果我使用
mysql_query("INSERT INTO test (DATA, STRING) VALUES ('".$seconda_sep[$a]."', '".$seconda_sep[$b]."')");计数($prima_sep)=2我在db中只找到1行。
我要怎么做才能插入正确的行号??
谢谢
发布于 2014-06-25 08:30:33
怎么样,我不知道为什么要丢弃前12个字符,但是处理rawData可以很简单地这样做。
$rawData = '22/5/2014&&blablabla%%23/5/2014&&bla1bla1bla1%%24/5/2014&&bla1bla1bla2';
$rows = explode("%%", $rawData);
foreach ( $rows as $row ) {
$fields = explode('&&',$row);
$sql = "INSERT INTO test (DATA, STRING) VALUES ('{$fields[0]}', '{$fields[1]}')";
mysql_query($sql);
}这将产生:
INSERT INTO test (DATA, STRING) VALUES ('22/5/2014', 'blablabla')
INSERT INTO test (DATA, STRING) VALUES ('23/5/2014', 'bla1bla1bla1')
INSERT INTO test (DATA, STRING) VALUES ('24/5/2014', 'bla1bla1bla2')发布于 2014-06-25 08:18:44
你应该简单地拥有:
$stringa = $rawData;而不是
$stringa = substr($rawData, 12, -1); 否则,使用以下数据创建2个元素数组:
0 => string 'lablabla'
1 => string '23/5/2014&&bla1bla1bla' 正如您看到的第一个元素,当您使用&&分隔符爆炸它时,您将不会有2个元素,这就是为什么第一个元素的数据没有插入到数据库中。
https://stackoverflow.com/questions/24403214
复制相似问题