gpt4 book ai didi

mysql - PDO 更新 - 保持原始值

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

我有以下更新语句:

 "UPDATE table SET value=:value, symbol=:symbol WHERE id=:id";

值总是设置的,但符号不一定是(意思是,如果用户不更新符号,它将保持不变)

对应的php代码:

$stmtDS->bindParam("value", $value);
if (isset($symbol))
$stmtDS->bindParam("symbol", $symbol);

问题是,如果未设置符号,

就会出错

Invalid parameter number: number of bound variables does not match number of tokens

那么有什么方法可以保留原始值而不进行另一个选择查询来找出原始值?

最佳答案

您将不得不构建不同的查询。然而,类似下面的内容应该可以帮助您构建动态查询:

<?php

$updatedValues = array(
'value' => $value,
);

if (isset($symbol)) {
$updatedValues['symbol'] = $symbol;
}

$query = 'UPDATE table SET';
$separator = '';
foreach ($updatedValues as $key => $_) {
$query .= ' ' . $separator . $key . ' = :' . $key;
$separator = ',';
}
$query .= ' WHERE id = :id';

$stmt = $connection->prepare($query);
$stmt->execute(array_merge($updateValues, array('id', $id)));

恕我直言,此方法提供了最大的灵 active 。

关于mysql - PDO 更新 - 保持原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227885/

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