gpt4 book ai didi

mysql - 增加 MySQL 列并获得结果

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

是否可以递增 MySQL 列并在单个查询中获得结果?如果是这样,它如何以及比在两个查询中更有效?请注意,version 不是自增列。

    $stmt=$this->pdo->prepare('UPDATE source_clients SET version=version+1 WHERE guid=?');
$stmt->execute([$guid]);
$stmt=$this->pdo->prepare('SELECT version FROM source_clients WHERE guid=?');
$stmt->execute([$guid]);
$version=$stmt->fetchColumn();

最佳答案

给自己一个好的 wrapper 。它将减少重复代码,使您的代码有效地看起来就像是一次调用中的两个查询。

$this->pdo->run('UPDATE source_clients SET version=version+1 WHERE guid=?',[$guid]);
$version=$this->pdo->run('SELECT version FROM source_clients WHERE guid=?',[$guid])
->fetchColumn();

以上方法来 self 的simple PDO wrapper

但实际上,您可以使用 PDO 在一次调用中运行这两个查询。

如果您打开仿真模式,则很有可能。然而,它不会使您的代码更短:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$sql = 'UPDATE source_clients SET version=version+1 WHERE guid=:guid;
SELECT version FROM source_clients WHERE guid=:guid';
$stmt=$this->pdo->prepare($sql);
$stmt->execute(['guid' => $guid]);
$stmt->nextRowset();
$version = $stmt->fetchColumn();

我怀疑这种方法是否值得麻烦。
更多信息你可以在我的PDO tutorial的相应部分找到

关于mysql - 增加 MySQL 列并获得结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41284411/

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