php - 在我的语句中使用布尔值时函数总是返回 false
问题描述
$firstTime = 'SELECT first_time FROM tbl_user WHERE user_id = :id';
$FTQuery = $pdo->query($firstTime);
$bool = bool($FTQuery);
if($bool>0){
redirect_to('./admin_edit.php');
} else {
redirect_to('index.php');
}
我找不到如何从我的数据库中提取它并将布尔值用于语句的答案,我正在尝试 var_dump 因为我在类似的帖子中看到它可以解决问题,但它没有。尝试使用 $FTQuery 变量作为语句,例如
if($FTQuery>0)
但这行不通。
解决方案
PDO::query()
返回一个PDOStatement
对象。如果要从数据库中获取值,请fetchColumn()
在该对象上使用。此外,您有一个未填充的占位符,因此您甚至不应该使用query()
,而是execute()
在准备好的语句上使用。不需要转换为布尔值;PHP 会自动执行此类操作。
$stmt = $pdo->prepare('SELECT first_time FROM tbl_user WHERE user_id = :id');
$stmt->execute(["id" => $id]);
$value = $stmt->fetchColumn();
redirect_to( $value ? './admin_edit.php' : 'index.php' );
推荐阅读
- python - 通过相同的数组扩展数组的数组间隔
- plsql - 如何在 Oracle19c 中使用整数变量声明 VARRAY 作为元素数
- excel - 协调列 VBA
- r - 当列名未知时,使用 dplyr 组合 data.frame 的列
- python-3.x - FastAPI 错误上传大于 100kb 的文件
- next.js - 在 nextjs 中使用 getServerSideProps 无限滚动
- nginx - 如何使用 NGINX 缓存 NextJS 10.0 图像
- python - 如何解码部分模糊的二维码?
- docker - gcloud submit:使用 --file 参数指定 Dockerfile 似乎不起作用
- java - 从单线程到多线程android studio