gpt4 book ai didi

php - Moodle表中没有值但查询结果计数返回1

转载 作者:行者123 更新时间:2023-11-29 12:03:26 25 4
gpt4 key购买 nike

我正在使用Moodle 2.9.1。我有一个查询来从表中获取最后一条记录:

我的查询如下:

$qstndetails = $DB->get_record_sql('SELECT * FROM {epoll_questions} WHERE status=? AND courseid=? ORDER BY id DESC LIMIT 0,1',array(2,$curseId));

我将计数视为

echo count($qstndetails);

如果有结果,我得到的计数为 1。

但如果结果不存在,我也将计数为 1。

我尝试过print_r($qstndetails)但没有显示任何内容。但计数显示为 1

当没有结果时,预期计数为 0。

为什么我会变成这样?

最佳答案

开发时,始终打开调试功能。这可能会显示第一个代码的错误消息。转到站点管理 -> 开发 -> 调试,然后调试消息 = 开发人员并打开显示调试消息。

此外,LIMIT 不是 SQL 标准。 Moodle 可与多个数据库配合使用,因此请尽量保持 SQL 的通用性。

此外,我建议使用命名参数而不是 ?。它使代码更易于阅读,但它们也可以按任何顺序使用。

最后,您可以使用 IGNORE_MULTIPLE 来获取第一条记录。

所以代码应该是这样的:

$sql = "SELECT *
FROM {epoll_questions}
WHERE status = :status
AND courseid = :courseid
ORDER BY id DESC";
$params = array('status' => 2, 'courseid' => $curseid);
$qstndetails = $DB->get_record_sql($sql, $params, IGNORE_MULTIPLE);

关于php - Moodle表中没有值但查询结果计数返回1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31979336/

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