【发布时间】:2014-09-10 09:18:20
【问题描述】:
我的previous question 提出了一个后续问题。通过从数组中获取值,我的代码是这样的:
for ($i=0; $i<count($entries);$i++)
{
$pcode = substr($entries[$i][0],0,-2);
$sku = substr($entries[$i][0],2);
$aprice = $entries[$i][1];
$beginv = $entries[$i][2];
$delivery = $entries[$i][3];
$endinv = $entries[$i][4];
$offtake = $entries[$i][5];
$bo = $entries[$i][6];
$shelf = $entries[$i][7];
$gondola = $entries[$i][8];
$chillers = $entries[$i][9];
$mass = $entries[$i][10];
$other = $entries[$i][11];
$total = $entries[$i][12];
$statement = "INSERT INTO `report_details` VALUES ('$id', '$pcode', '$sku', '$aprice', '$beginv', '$delivery', '$endinv', '0', '0', '$offtake, '0', '0', '0', '$bo', '$shelf', '$gondola', '$chillers', '$mass', '$other', '$total')";
$result = mysqlparseradd($statement,$db);
if($result)
{echo "YES";}
else
{echo "NO";}
}
而我的数组是这样的:
Array
(
[0] => Array
(
[0] => 0111
[1] => 260.00
[2] => 23
[3] => 34
[4] => 3
[5] => 54
[6] => 1
[7] => 2
[8] => 4
[9] => 5
[10] => 12
[11] => 23
[12] => 46
)
[1] => Array
(
[0] => 0214
[1] => 22.00
[2] => 32
[3] => 4
[4] => 11
[5] => 25
[6] => 4
[7] => 12
[8] => 23
[9] => 5
[10] => 2
[11] => 2
[12] => 44
)
[2] => Array
(
[0] => 0313
[1] => 25.00
[2] => 5
[3] => 52
[4] => 12
[5] => 45
[6] => 12
[7] => 5
[8] => 6
[9] => 7
[10] => 12
[11] => 3
[12] => 33
)
)
这个问题,我总是得到NO 的值,这意味着它不会被添加到数据库中。我的问题是,我没有插入数据库的代码有什么问题?当我只插入一行数据但没有多行数据时,我做得很好。
编辑
当我打印我的$statement 时,结果是这样的:
INSERT INTO `report_details` VALUES ('JJ1234567890_140822_140824_1020001', '01', '11', '260.00', '23', '34', '3', '0', '0', '54, '0', '0', '0', '1', '2', '4', '5', '12', '23', '46')
只添加了一个数组值。我的mysqlparseradd 是一个类似于mysqli_query 的函数。它执行查询。
【问题讨论】:
-
使用 $mysqli->error 查看问题所在。我不知道你的
mysqlparseradd是做什么的,所以我无法帮助你。 -
请打印$statement。
-
@unska 我更新了我的问题
-
@PatrickB 请再次查看我的问题
-
顺便说一句,在循环中构建值,然后在最后提交一个大的多行插入,而不是所有这些单行插入,效率要高得多。
标签: php mysql arrays multidimensional-array