[英]How can I handle the result of SELECT 1 by PHP?
我有以下代码:
$db
->prepare("SELECT 1
FROM ( SELECT count(*) AS num_week,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 day))) as num_day,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 hour))) as num_hour,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 minute))) as num_1min
FROM resend_pass
WHERE user_id = ?
AND date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 WEEK))
) a
WHERE num_week < 12 AND num_day < 6 AND num_hour < 4 AND num_1min < 1;")
->execute(array($id));
那么如何使用查询结果? 当WHERE
子句上的所有条件都为true时,它返回1
;否则,则返回WHERE
。 好吧,我需要知道如何处理以SELECT 1
开头的查询的结果?
您甚至不需要知道结果是什么 ,因为无论如何您只会看到1
,所以您要做的就是查看是否有结果(以及有多少个): PDOStatement :: rowCount
$stmt = $db
->prepare("SELECT 1
FROM ( SELECT count(*) AS num_week,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 day))) as num_day,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 hour))) as num_hour,
sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 minute))) as num_1min
FROM resend_pass
WHERE user_id = ?
AND date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 WEEK))
) a
WHERE num_week < 12 AND num_day < 6 AND num_day < 4 AND num_1min < 1;");
$stmt->execute(array($id));
if($stmt->rowCount() > 0) {
// Your code
}
当仅选择包含单个值的单个行时,必须使用fetchColumn()。
请注意,对于Vanila PDO,不能对SELECT查询使用方法链接
$stmt = $db->prepare("SELECT 1 whatever");
$stmt->execute(array($id));
$result = $stmt->fetchColumn();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.