例如我发送以下 ID:
$user->id = '1{3}4{5}6';
代表:
$user->id(=1{3}4{5}6){$option(=3)}$value(=4){$option(=5)}$value(=6)
我现在需要使用准备好的语句为每个 $option 和 $value 对插入数据库。
sql 如下所示:
if ($user->attr == 1) {
$sth = $this->dbh->prepare("insert into customers_basket_attributes
(customers_id,
products_id,
products_options_id,
products_options_value_id)
values ('1', ?, ?, ?)");
$sth->execute(array($user->id, $option, $value));
return json_encode(1);
}
我想避免每次数据库插入时都回退到 jQuery。
最佳答案
据我了解,这个 $user->id = '1{3}4{5}6';
分解:
Product_id = 1
Option_3 = 4
Option_5 = 6
并且您希望将其存储到如下记录中:
products_id products_options_id products_options_value_id
1 3 4
1 5 6
从我的角度来看,您基本上需要与上面的行一样多的插入。您可以将其合并到一个包含多行的插入中:
insert into customers_basket_attributes
(customers_id,
products_id,
products_options_id,
products_options_value_id)
values (nn, 1,3,4),(nn, 1,5,6)
将其放入准备好的语句中以某种方式摆弄数组,但应该是可以实现的。可能更清楚的是,每行只发出一个插入,无论如何,成本都是微乎其微的。
关于php - 通过 JSON 将分隔字符串发送到 PHP 以获取准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916800/