使用for循环时,无法在数据库中插入多行,而不是插入多行,而是将单行插入到Oracle DB。
尝试了很多时间后,经过多次尝试,在使用for loop(PHP)时,我无法在oracle数据库中插入多行。我找不到我的问题的解决方案。据我认为,QUERY有问题。
此外,它将在数据库中插入单行,
下面是我的代码
$arr =array();
for( $l=0; $l<count($_POST['i_id']); $l++ )
{
$item_id = $_POST['i_id'][$l];
$fk_saleord_no = $r;
$var2 = $_POST['sales_order_date'];
$fix2 = str_replace('/', '-', $var2);
$fk_saleord_date = date('d-m-Y', strtotime($fix2));
$entity_no_branch = $_POST['p_branch'];
$insert1 = "INSERT INTO SALE_ORDER_DTL(FK_SALEORD_NO, FK_SALEORD_DATE,
ENTITY_NO_BRANCH, ITEM_ID )VALUES('.$fk_saleord_no.','.
$fk_saleord_date.','. $entity_no_branch.','. $item_id .')";
$send1 = oci_parse($gerp, $insert1);
oci_execute($send1);
$arr[] = $insert1;
}
在打印我的循环时:
echo "<pre>";
print_r($arr);
exit;
它给出以下结果:
Array
(
[0] => INSERT INTO SALE_ORDER_DTL(FK_SALEORD_NO, FK_SALEORD_DATE,
ENTITY_NO_BRANCH, ITEM_ID )VALUES('.1190062.','. 11-01-2019.','. POS-
0001.','. 168 .')
[1] => INSERT INTO SALE_ORDER_DTL(FK_SALEORD_NO, FK_SALEORD_DATE,
ENTITY_NO_BRANCH, ITEM_ID )VALUES('.1190062.','. 11-01-2019.','. POS-
0001.','. 191 .')
[2] => INSERT INTO SALE_ORDER_DTL(FK_SALEORD_NO, FK_SALEORD_DATE,
ENTITY_NO_BRANCH, ITEM_ID )VALUES('.1190062.','. 11-01-2019.','. POS-
0001.','. 224 .')
)
我只想将所有行插入数据库。
答案 0 :(得分:0)
无需在查询中进行串联
或使用“。$ fk_saleord_no”。在使用单(')用法(“)
的查询中调用参数
$arr =array();
for( $l=0; $l<count($_POST['i_id']); $l++ )
{
$item_id = $_POST['i_id'][$l];
$fk_saleord_no = $r;
$var2 = $_POST['sales_order_date'];
$fix2 = str_replace('/', '-', $var2);
$fk_saleord_date = date('d-m-Y', strtotime($fix2));
$entity_no_branch = $_POST['p_branch'];
$insert1 = "INSERT INTO SALE_ORDER_DTL(FK_SALEORD_NO, FK_SALEORD_DATE,
ENTITY_NO_BRANCH, ITEM_ID )VALUES('$fk_saleord_no','
$fk_saleord_date','$entity_no_branch',' $item_id ')";
$send1 = oci_parse($gerp, $insert1);
oci_execute($send1);
$arr[] = $insert1;
}