gpt4 book ai didi

php - ajax 动态对象(类似关联数组)通过 PDO 转换为两个 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 08:23:35 25 4
gpt4 key购买 nike

我有一个 js 动态对象,通过 JSON.stringify(obj_to_str); “字符串化”;

我能够在 super 全局 $_POST 下的 php 文件中接收此对象。对象的格式(一旦进入 $_POST super 全局)如下所示: {"6869lx":"mds","2416ex":"mdr","5126mv":"mdf","7079px":"dtr","5350ds":"dts"}。我希望能够将每个键值对插入到不同的列中 - 例如:6869lx 插入名为“key”的列,并在同一行上名为“cat”的不同列上,mds。

我遇到的问题是准备一个动态PDO语句来将此js对象插入到两个不同的MySQL列中(考虑到我事先不知道对象的长度)。我还读到,如果对象非常大,for 循环(或任何类型的 php 循环)会减慢插入过程。

这可能吗?最好的方法是什么?非常感谢。

最佳答案

具体操作方法如下:

$data = json_decode($_POST['data'], true);
$stmt = $pdo->prepare("INSERT INTO yourtable (key, cat) VALUES (:key, :cat)");
$stmt->bindParam(':key', $key);
$stmt->bindParam(':cat', $cat);
foreach ($data as $key => $cat) {
$stmt->execute();
}

要进行多行插入,您可以执行以下操作:

$data = json_decode($_POST['data'], true);
$values = implode(', ', array_fill(0, count($data), '(?, ?)'));
$stmt = $pdo->prepare("INSERT INTO yourtable (key, cat) VALUES " . $values);
$i = 1;
foreach ($data as $key => $cat) {
$stmt->bindValue($i++, $key);
$stmt->bindValue($i++, $cat);
}
$stmt->execute();

关于php - ajax 动态对象(类似关联数组)通过 PDO 转换为两个 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18577655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com