PDO 中没有行时返回值

Value return when no rows in PDO(PDO 中没有行时返回值)
本文介绍了PDO 中没有行时返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 PDO 函数:

I have a PDO function:

function(){
    $success=$this->query($query, $bindvalues);

    return ($success == true) ? $this->stmt->fetch(PDO::FETCH_ASSOC) : false;
}

当我执行返回一行(或更多)的选择查询时,它将返回例如:

When I perform a select query that returns a row (or more), it will return for example:

array(1) { ["Id"]=> string(1) "1" }

当查询失败时(例如,如果我有错误的语法),它将返回 FALSE.

When the query fails (if I have a wrong syntax for example), it will return FALSE.

但如果查询中没有找到任何行,它也会返回 FALSE.

But if no rows are found with the query it also returns FALSE.

因此,查询中有错误且没有行的返回值都将返回 FALSE.这怎么可能?只有在查询中出现错误时我才需要返回 FALSE,例如当没有结果时我需要返回 NULL.我的功能有问题吗?

So the return value with an error in the query and with no rows will both return FALSE. How is that possible? I need to return FALSE only when there is an error in the query, and I need to return NULL for example when there are no results. Is there something wrong in my function?

谢谢!

推荐答案

如果没有找到行 PDO::fetch 返回 false.这是事实.所以改变你的功能:

If no row was found PDO::fetch returns false. This is a fact. So change your function:

function(){
    $success = $this->query($query, $bindvalues);
    if(!$success) {
        //handle error
        return false;
    }
    $rows = $this->stmt->fetch(PDO::FETCH_ASSOC);
    return $rows ?: null;
}

这篇关于PDO 中没有行时返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)