簡體   English   中英

Foreach PHP僅在數據庫中插入最后一項

[英]Foreach PHP only inserts last item in db

我已經找到其他主題的一些答案,但沒有找到適合我情況的答案。 我在將數組元素插入數據庫中時遇到一些麻煩。 (SQL Server)。 當在PHP中使用foreach循環時,該循環僅將數組的最后一個元素插入db,但是當我printr($arrayname)它會顯示正確的兩個元素。

這是一些代碼。

首先,我進行選擇以分配一些變量:(子查詢用於刪除選擇中的“,”)

$sql="SELECT ... FROM ...";
$query = sqlsrv_query( $conn, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));

foreach($_SESSION['cart'] as $id => $value) { 

$sql.=$id.","; 
 }         
$sql=substr($sql, 0, -1).")"; 

     if ($query){

         while($row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {

         $variable=$row['rowname'];

        }
    }

到目前為止,一切都很好,對$variable做了回顯以測試它是否同時打印了兩個行記錄。

比我執行插入:

foreach($_SESSION['cart'] as $id => $value) { 

print_r($id);

$sql="INSERT INTO() ... VALUES ('$value')";
    $query= sqlsrv_query( $conn, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
}

這是哪里出錯了,我再次執行了print($id)來測試並查看值。 它輸出兩個值,但僅插入數組$id的最后一個元素( $variablename )。

拜托,我在做什么錯?

干杯。

foreach($_SESSION['cart'] as $id => $value) { 

$sql.=$id.","; 
  }         
$sql=substr($sql, 0, -1).")"; 
$query = sqlsrv_query( $conn, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));

    if ($query){

     while($row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {

     $variable=$row['rowname'];

     $sql2="INSERT INTO ()";
     $stmt= sqlsrv_query( $conn, $sql2, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));


 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM