私はこれに少し苦労しています。いくつか私は少し私を導くことを願っています。PHPを使用して配列からmysqlに値を挿入する
私はmysql(この場合はセッションではない)のショッピングカートのバスケット製品を取り出し、チェックアウト時に「注文詳細」テーブルに移動しようとしています。
製品の配列は正常に作成され、キーと値は正しく出力されますが、問題は配列値を別のテーブルに挿入しようとするときです。ここで
コードです:
$cart_products = array();
$stmt = $conn->prepare("SELECT
SUM(co.cart_quantity) AS quantity,
p.product_id,
p.product_name,
SUM(p.product_price) AS price,
p.short_description,
SUM(p.product_weight) AS weight,
p.vat
FROM cart_orders AS co
LEFT JOIN products AS p
ON co.cart_product_id = p.product_id
LEFT JOIN vat_rates AS vr
ON p.vat = vr.vat_id
WHERE cart_user_id = ?
GROUP BY co.cart_product_id
ORDER BY co.cart_product_id");
$stmt->bind_param('i', $user_id);
$stmt->bind_result($quantity,$p_product_id,$p_product_name,$price,$p_short_description,$weight,$p_vat);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows() > 0){
while ($stmt->fetch()) {
$cart_products[] = array(
"product_id" => $p_product_id,
"product_name" => $p_product_name,
"product_quantity" => $quantity,
"product_price" => $price,
"vat_id" => $p_vat
);
}}
$stmt->free_result();
$stmt->close();
$stmt = $conn->prepare("INSERT INTO order_details(product_id,product_name,product_quantity,product_price,vat_id)
VALUES (?,?,?,?,?)");
$stmt->bind_param('isiii', $cart_products['product_id'],$cart_products['product_name'],$cart_products['product_quantity'],$cart_products['product_price'],$cart_products['vat_id']);
$stmt->execute();
$stmt->close();
これは私の配列$ cart_productsの出力です:
Array
(
[0] => Array
(
[product_id] => 5
[product_name] => Product A
[product_quantity] => 20
[product_price] => 2.50
[vat_id] => 2
)
[1] => Array
(
[product_id] => 7
[product_name] => Product A
[product_quantity] => 10
[product_price] => 2.50
[vat_id] => 1
)
[2] => Array
(
[product_id] => 9
[product_name] => Product A44544
[product_quantity] => 3
[product_price] => 2.50
[vat_id] => 2
)
)
はあなたの助けのために事前にありがとうございます!
おそらく、この問題は助けることができます http://stackoverflow.com/questions/10054633/insert-array-into-mysql-database-with-php –
BennyBoyは彼のコードに誤りがあります。最後は 'bind_param'です。私はDenizAktürkによって追加されたこのような問題は二重には見えません。 – Arnial
@BennyBoyあなたは 'INSERT INTO ... SELECT'を使って他のテーブルにあなたの値を直接挿入することができます。 http://stackoverflow.com/a/37741763/3595565 phpで選択している製品データを検証する必要がない場合、これはあなたのケースを処理する良い方法になります – Philipp