php无法将数组数据插入数据库

时间:2012-11-16 22:01:09

标签: php

sql:

$sql = $db->prepare('SELECT * FROM product_detail WHERE size = $order_size AND product_id = $order_detail_product_id');

代码:

$order_detail_product_id = $_POST['order']['product_id'];
$order_size = $_POST['order']['size'];

HTML:

<?php foreach ($it as $e) { >?
      <input type="text" name="order[product_id][]" value="<?php echo  $e[0]; ?>">
      <input type="text" name="order[size][]" value="<?php echo  $e[3]; ?>">
<?php } ?>

为什么这样做不起作用。错误是数组到字符串转换

1 个答案:

答案 0 :(得分:-1)

你不能在你的准备语句中使用单引号内的变量(你需要双引号才能理解,但它仍然非常糟糕,但仍然没有意义因为你是使用数组作为字符串),并将值放在你准备的字符串中胜过准备的目的,你应该这样做:

foreach ($order_size as $key => $size):
$stmt = $db->prepare('SELECT * FROM product_detail WHERE size = ? AND product_id = ?');
$stmt->bindParam(1, $size);
$stmt->bindParam(2, $order_detail_product_id[$key]);
...
endforeach;

或者根据您的需要使用不同的查询,这不容易用您发布的内容进行猜测。

假设您使用的是pdo而不是mysqli(这会很糟糕)。

相关问题