data; print_R( $src-6ren">
gpt4 book ai didi

PHP MYSQL 使用 JSON 提供的内容构建动态 UPDATE 查询

转载 作者:行者123 更新时间:2023-11-30 00:06:07 25 4
gpt4 key购买 nike

PHP

$postdata = json_decode(file_get_contents("php://input"));
$src = $postdata->data;
print_R( $src );

打印出上面的内容

stdClass Object
(
[id] => 1
[first] => Joe
[middle] => Cornelius
[last] => Bloggs
)

但是我想要做的是构建一个动态的 UPDATE MySQL 查询,以便数据输入可能类似于以下内容:

stdClass Object
(
[id] => 1
[first] => Joe
[middle] =>
[last] => Bloggs
)

然后 MySQL 查询将错过更新中的middle。 MySQL 表行排列在数组的 id 中。

我尝试过这样做,但我能想到的只是一个 if 语句来查看是否有值,但那不是循环。

我希望有人能想出一种更简单的方法。

最佳答案

类似这样的吗?

$src = (array) $src;
$sets = array();
$valid_fields = array('first','middle','last');

foreach( $valid_fields as $valid_field )
{
if(!empty($src[ $valid_field ]))
{
$safe_data = some_type_of_validation( $src[ $valid_field ]); // addslashes? mysql_real_escape_string?
$sets[] = "{$valid_field} = '{$safe_data}'";
}
}

if(!empty($sets))
{
$set_clause = implode(',',$sets);
$sql = "UPDATE table SET {$set_clause} WHERE id = {$id}";
}

请注意,这不允许您将值设置为空字符串,因此,例如,如果有人确实想将其中间名设置为“”,则这是行不通的。

关于PHP MYSQL 使用 JSON 提供的内容构建动态 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533509/

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