[英]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.