0

我有带酒店、订单类型和描述的数据库 A。我想从数组 $new_array 向数据库 A 插入值。

//数组 $new_array

Array
(
[0] => Array
    (
        [order_type] => 1
        [currency] => 26
        [net] => 
        [rate] => 
        [amount] => 
        [bank_surcharge] => 
        [ticket] => 
        [profit] => 
        [selling_price] => 
        [description] => a
        [hotel] => 1
        [vendor] => 11
    )

[1] => Array
    (
        [order_type] => 2
        [currency] => 27
        [net] => 
        [rate] => 
        [amount] => 
        [bank_surcharge] => 
        [ticket] => 
        [profit] => 
        [selling_price] => 
        [description] => b
        [hotel] => 1
        [vendor] => 11
    )
...
...
}

我试过这个脚本,但什么也没发生:(

for($i = 0; $i < sizeof($new_array['order_type']); $i++){
    mssql_query("INSERT INTO A(hotel_id, order_type,    description) 
    VALUES('$new_array[$i]', '$new_array[$i]', '$new_array[$i]')");
}

如何用 php 做到这一点?请任何人帮助我。

4

6 回答 6

3

尝试将Connection引用和循环传递为:

foreach($new_array as $each){
    mssql_query($conn, "INSERT INTO A(hotel_id, order_type, description) 
    VALUES('{$each['hotel']}', '{$each['order_type']}', '{$each['description']}')");
}
于 2013-10-31T07:51:35.697 回答
2

1)你的循环无效,应该是sizeof($new_array)

2)您对SQL语句的数组数据访问无效

for($i = 0; $i < sizeof($new_array); $i++){
    mssql_query("INSERT INTO A(hotel_id, order_type, description) VALUES({$new_array[$i]['hotel']}, '{$new_array[$i]['type']}', '{$new_array[$i]['description']}')");
}
于 2013-10-31T07:54:23.573 回答
2

这有帮助吗?

foreach($new_array as $item) {
    mssql_query("INSERT INTO A (hotel_id, order_type, description) 
    VALUES('". $item['hotel'] ."', '". $item['order_type'] ."', '". $item['description']. "')");
}

foreach与循环非常相似,for但它只是迭代所有数组元素。你不需要关心数组的大小。

于 2013-10-31T07:51:03.287 回答
1
foreach ($new_array as $val){
    mysql_query("INSERT INTO A(order_type, description) VALUES($val['order_type'], $val['description'])");
}

此代码不插入hotel_id,因为它是表 A 的主键。

于 2013-10-31T07:51:23.877 回答
0
for ($i = 0; $i < sizeof($new_array['order_type']); $i++) {
    mssql_query("INSERT INTO A(hotel_id, order_type, description) VALUES ('$new_array[$i]["hotel"]', '$new_array[$i]["order_type"]', '$new_array[$i]["description"]')");
}

我猜这应该可以工作,虽然还没有测试过。

于 2013-10-31T07:51:21.243 回答
-1

尝试这个

for($i = 0; $i < sizeof($new_array['order_type']); $i++){
    mssql_query("INSERT INTO A(hotel_id, order_type,    description) 
    VALUES('".$new_array[$i]['hotel']."', '".$new_array[$i]['order_type']."', '".$new_array[$i]['description']."')");
}
于 2013-10-31T07:51:00.590 回答