gpt4 book ai didi

php - 动态构造 INSERT 语句后类型转换失败?

转载 作者:行者123 更新时间:2023-11-29 12:56:09 24 4
gpt4 key购买 nike

我正在尝试基于 JSON 键/值对动态创建 INSERT 语句,其中 $key 是字符串或整数数据类型的数据库字段,$value 是整数或字符串。我之前没有遇到将数字字符串插入 Postgres 的问题,但它失败了。

例子:

$json = '{"stringField":"string","intString":"42"}';
$columns = $values = '';
foreach (json_decode($json, true) as $key => $value) {
if ($value != NULL) {
$columns .= $key . ', ';
$values .= "'" . $value . "', ";
}
}
$query = ('INSERT INTO table ('.rtrim($columns, ', ').') VALUES ('.trim($values, ', ').');');

最佳答案

这是更干净的 PHP:

$json = '{"stringField":"string","numberField":"42"}';
$columns = $values = '';
foreach (json_decode($json, true) as $key => $value) {
if ($value !== NULL) {
$columns .= $key . ', ';
$values .= is_numeric($value) ? $value : "'" . $value . "', ";
}
}

$query = 'INSERT INTO table ('.rtrim($columns, ', ').') VALUES ('.trim($values, ', ').');';

请考虑逃避您的值(value)观。

关于php - 动态构造 INSERT 语句后类型转换失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42798741/

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