[英]Foreach PHP only inserts last item in db
i allready found some answers at other topics but not a working answer for my situation. 我已经找到其他主题的一些答案,但没有找到适合我情况的答案。 I'm having some troubles with inserting elements of an array into my DB. 我在将数组元素插入数据库中时遇到一些麻烦。 (SQL Server). (SQL Server)。 When using a foreach loop in PHP the loop only inserts last element of the array into db, but when i printr($arrayname)
it shows the correct both elements. 当在PHP中使用foreach循环时,该循环仅将数组的最后一个元素插入db,但是当我printr($arrayname)
它会显示正确的两个元素。
Here's some of the code. 这是一些代码。
First i do a select to assign some variables: (the subquery is for removing ',' in the select) 首先,我进行选择以分配一些变量:(子查询用于删除选择中的“,”)
$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'];
}
}
So far so good, did an echo on the $variable
to test if it prints both row records, and it did. 到目前为止,一切都很好,对$variable
做了回显以测试它是否同时打印了两个行记录。
Than i do the INSERT: 比我执行插入:
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 ));
}
Here's where it goes wrong, again i did a print($id)
to test and see the values. 这是哪里出错了,我再次执行了print($id)
来测试并查看值。 It prints both values but only inserts the last element ( $variablename
) of array $id
. 它输出两个值,但仅插入数组$id
的最后一个元素( $variablename
)。
Please, what am i doing wrong? 拜托,我在做什么错?
Cheers. 干杯。
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.