1

我正在使用下面的查询来提取 MySQL 表中名为 id 的列的最大值,以便将其值增加 1 并将其传递给名为 $fav_id 的变量。由于某种原因,$fav_id 返回 '0',而不是我想要的值,即如果 id 列中的最大当前值为 465,则 $fav_id 应设置为 466。也许有人可以让我知道我要去哪里错误的。

$sth2 = $pdo->prepare("SELECT MAX(id) AS id FROM tracks");

$sth2->setFetchMode(PDO::FETCH_OBJ);

while($row = $sth2->fetch()) {
    $fav_id = $row->id+1;
}
4

2 回答 2

0

尝试将 $row->id+1 括在括号中,例如 ($row->id)+1,并注意范围。您可能希望在 while 循环之外将 $fav_id 设置为 0,以使其具有比 while 循环更大的范围。

于 2012-08-16T16:43:40.387 回答
0

根据我对 PDO 的了解,它应该是 $row[id] 而不是 $row->id。此外,您从未执行过准备好的语句,但由于您在查询中没有任何占位符,您应该使用 '->query' 而不是 '->prepare'

于 2012-10-22T02:22:18.863 回答