无法使用for循环PHP

时间:2019-01-11 07:46:47

标签: php database oracle10g

使用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 .')
 )

我只想将所有行插入数据库。

1 个答案:

答案 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;
 }