问题将数据从爆炸数组插入数据库

时间:2019-05-21 08:50:21

标签: php database

我有代码php。而且我不会插入数据库。此代码错误的插入可以帮助更正我的代码php

此代码

$data = "3 003.3.003.003.006 31500.0,3 003.3.003.003.003 76500.0,4 003.3.003.003.002 72000.0,5 003.3.003.003.004 153750.0,6 003.3.003.003.005 187500.0,3 003.3.003.003.001 46500.0,";


$exone = explode(",",$data);
for ( $i = 0; $i < count( $exone ); $i++ ) { $extwo = explode(" ",$exone[$i]);

for ( $j = 0; $j < count( $extwo); $j++ ) { echo $extwo[$j]. "<br />";


$sql = "INSERT INTO tbl_test(qty, kode, price) VALUES('$extwo[$j]','$extwo[$j]',$extwo[$j]')";
echo $sql;}}

2 个答案:

答案 0 :(得分:1)

字符串以逗号“,”结尾,因此程序可能最后试图添加null。尝试删除最后一个逗号。

答案 1 :(得分:0)

不需要第二个for循环,您可以在之后访问值 explode

explode()$data字符串乘以,,循环搜索结果,并explode()将每个结果(如果不为空)按空格隔开:

<?php

$data = "3 003.3.003.003.006 31500.0,3 003.3.003.003.003 76500.0,4 003.3.003.003.002 72000.0,5 003.3.003.003.004 153750.0,6 003.3.003.003.005 187500.0,3 003.3.003.003.001 46500.0,";
$exone = explode(",", $data);

foreach ( $exone as $x ) {
    if ( !empty($x) ) {
        $extwo = explode(" ", $x);
        // var_dump($extwo);
        $sql = "INSERT INTO tbl_test(qty, kode, price) VALUES('{$extwo[0]}','{$extwo[1]}','{$extwo[2]}');";
        echo $sql . PHP_EOL;
    }
}

输出:

INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.006','31500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.003','76500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('4','003.3.003.003.002','72000.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('5','003.3.003.003.004','153750.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('6','003.3.003.003.005','187500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.001','46500.0');

如果取消注释行// var_dump($extwo);,您将看到$extwo是具有所需值的数组。您可以使用$extwo[0]$extwo[1] ...

访问它们