【发布时间】:2022-01-06 03:27:54
【问题描述】:
我有一个函数getMaxID,它查询数据库(消息)并获取最大id
我想把返回的PDO语句中唯一一行的值名改成max_id
问: 我该怎么做?
这里是代码
function getMaxID() {
$result = $db->query("SELECT * FROM messages ORDER BY id DESC LIMIT 1");
//here is where I want to edit $result's name field
return result
}
$maxID = getMaxID()
$row = $maxID->fetch(PDO::FETCH_ASSOC);
echo "id: " . $row["id"]. " - Name: " . $row["name"] . "<br>";
我想得到
id:(无论最大 id 是多少)- 名称:max_id
而不是(上面的例子会产生什么)
id:(无论最大 id 是什么) - 名称:(无论最大 id 行的名称是什么)
我有什么
我实际上有一种工作方式,那就是
-使用更新将表中的名称值更改为max_id
-从表中选择最大id(这是我返回的)
-使用更新将名称改回原始值
但是,这非常笨拙,我相信有比修改数据库更好的方法来做到这一点
我的另一个最佳尝试是在 getMaxID() 中编辑行值
所以新代码看起来像这样
function getMaxID() {
$result = $db->query("SELECT * FROM messages ORDER BY id DESC LIMIT 1");
$row = $result->fetch(PDO::FETCH_ASSOC);
$row['name'] = 'max_id'
//This returns an empty result PDO statement
//Is it possible to add row back to PDO statement ($return)???
return result
}
$maxID = getMaxID()
$row = $maxID->fetch(PDO::FETCH_ASSOC);
echo "id: " . $row["id"]. " - Name: " . $row["name"] . "<br>";
这个解决方案几乎可以工作,但问题是它返回一个空的 PDO 语句
由于您正在获取 PDO 语句的第一行,而 PDO 语句只有一行
有没有办法将行 ($row) 添加回 PDO 语句 ($result)? (如果是这样,这个解决方案会起作用)
【问题讨论】:
-
您是否只是想为列名分配一个 ALIAS,或者究竟是什么?