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 } ?>
为什么这样做不起作用。错误是数组到字符串转换
答案 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(这会很糟糕)。