gpt4 book ai didi

PHP PDO 我如何包含 fetch assoc 和 numrows

转载 作者:可可西里 更新时间:2023-11-01 07:53:32 25 4
gpt4 key购买 nike

试图将我所有旧的 mysql_* 操作转换为新的,据我所知,改进的 PDO,但是这个查询似乎无法成功运行,我试图从表 PEOPLE,其中用户名 = $username(之前已声明 $username = $_SESSION['username'];)

$query = "SELECT  * FROM people WHERE username=?";
$stmt = $conn->prepare($query);
$stmt->bindParam(1, $username);
$stmt->execute();
$num_rows = $stmt->fetchColumn();

if ($num_rows == 1) {
// ...
}

工作代码是:

$query = "SELECT  * FROM people 
WHERE username=?";
$stmt = $conn->prepare($query);
$stmt->bindParam(1, $username);
$stmt->execute();
$num_rows = $stmt->fetchColumn();
$user = $stmt->fetchObject();

if ($user) {

//do something

}

最佳答案

$stmt->fetchColumn 不获取行数;在这种情况下,它将从结果集的第一行获取第一列。由于它不等于 1,因此您的测试通常会失败。

在这种情况下,也没有真正需要计算返回的行数,因为您期望的是 1 或 0(如果用户名不存在)。所以你可以简单地做:

$stmt->execute();
$user = $stmt->fetchObject();
if (!$user) {
// not found
}
else {
echo "User $user->username found!";
}

if(!$user) 测试有效,因为如果没有要获取的行,$user 将为 false(请参阅文档对于 fetchObject )。

关于PHP PDO 我如何包含 fetch assoc 和 numrows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324653/

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