我无法在PHP中解码和插入数组数据。我尝试过像decode
和foreach
这样的功能,但都不起作用。
$_POST['area']
数据:
[area] => [{"text":"DATA1"},{"text":"DATA2"},*,{"text":"DATA3"}]
我是PHP的新手,如何用pdo准备好的语句将这些数据行插入到我的数据库中?
$area = $_POST['area'];
foreach ($area as $data) {
echo json_decode($data);
}
echo json_decode($area);
然而,它并没有回声。
最终,我想使用以下数据:
$stmt = $con->prepare(INSERT INTO `table` (`areas`) VALUES(:data));
$stmt->execute(array($data));
首先,由于*,
,您有一个无效的json字符串。
$_POST['area'] = '[{"text":"DATA1"},{"text":"DATA2"},*,{"text":"DATA3"}]';
// uh oh, not valid json -----^^
因此,我假设这是一个发布错误,并使用以下输入数据运行:
$_POST['area'] = '[{"text":"DATA1"},{"text":"DATA2"},{"text":"DATA3"}]';
这意味着,在您可以迭代$_POST['area']
之前,您必须先迭代json_decode()
。(Demo(
一个不变的prepared语句应该在进入循环之前声明——它被设计为反复使用。
值到占位符的绑定和查询的执行将在循环内完成。
$stmt = $con->prepare(INSERT INTO `table` (`areas`) VALUES(?));
foreach (json_decode($_POST['area']) as $obj) {
$stmt->execute([$obj->text]);
}
您的json格式不正确。要执行json_decode();
,您需要正确的json格式
$post['area'] = [{"text":"DATA1"},{"text":"DATA2"},*,{"text":"DATA3"}];
将其更改为
$post['area'] = [{"text":"DATA1"},{"text":"DATA2"},{"text":"DATA3"}];
然后进行
$ex = json_decode($data, true);
使用此:
$area = json_decode($_POST['area'],true);
你不能在PHP中回显数组。您必须使用var_dump()
函数才能做到这一点。祝你今天过得愉快。