Php MySQL或Zend有时返回空值而不是数字

Php MySQL或Zend有时返回空值而不是数字,php,mysql,zend-db,Php,Mysql,Zend Db,出于某种原因,我的一些SQL查询似乎处理数字很奇怪。例如,在我的mySQL数据库中,有一个名为users的表,其中有一个INT(11)字段,名为points。当我试图检索这个字段时,它有时返回正确,有时返回null。此查询每次返回“用户fMcBBx根据数据库拥有点”: $query = "SELECT points FROM users WHERE user_id = '$this->getID()'"; $result = DBCore::call()->fetchRow(

出于某种原因,我的一些SQL查询似乎处理数字很奇怪。例如,在我的mySQL数据库中,有一个名为users的表,其中有一个INT(11)字段,名为points。当我试图检索这个字段时,它有时返回正确,有时返回null。此查询每次返回
“用户fMcBBx根据数据库拥有点”

$query = "SELECT points FROM users WHERE user_id = '$this->getID()'";
    $result = DBCore::call()->fetchRow($query);
    echo "User {$this->getID()} has {$result['points']} points according to database";
虽然我的构造函数每次都会正确返回数字,例如
“根据数据库,用户fMcBBx有1050点”


我在查询中没有找到任何正确返回和不正确返回此字段的模式。我通过在PHPmyAdmin中对数据库运行它们来检查所有的输入值,以确保它们都工作,并且我已经回显了所有的输入值,以确保它们被正确传输。为什么在某些查询中可能会得到null,而在其他查询中则不会?

当我在第一个查询中的函数调用周围加上大括号时,
$query=“SELECT points FROM users,其中user_id='{$this->getID()}',它可以完美地工作。Php无法以读取变量的方式计算双引号字符串中的函数调用,在函数调用周围放上大括号可以正确计算函数调用。

如果可以提供一些测试数据和查询来重现这种行为,那就太好了。看看你的问题,我不明白为什么这些查询会产生不同的点结果。是相同的查询总是返回null,还是相同的查询在不同时间运行时返回不同的结果?你的问题并不完全清楚,但我怀疑是前者。对于echo@dcp,如果我们能够看到一些失败的查询,以及表的结构和一些示例数据,这会有所帮助。是什么让您认为它返回null?为什么它不返回任何行?你认为这是为什么?为什么您认为this.getID()参数在两个不同的时间都可能不同?请尝试使用具体的id,而不是$this->getID()和$this->id
SELECT first,
       last,
       email,
       points,
       level,
       gender
FROM users
WHERE user_id = '{$this->id}'