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

时间:2012-07-03 17:25:01

标签: php mysql zend-db

出于某种原因,我的一些SQL查询似乎奇怪地处理数字。例如,在我的mySQL数据库中,我有一个名为users的表,其中包含一个名为points的INT(11)字段。当我尝试检索此字段时,有时它会正确返回,有时它会返回null。此查询每次都返回"User fMcBBx has points according to database"

$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";

虽然我的构造函数中的每一个都会正确地返回数字,例如"User fMcBBx has 1050 points according to database"

SELECT first,
       last,
       email,
       points,
       level,
       gender
FROM users
WHERE user_id = '{$this->id}'

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

1 个答案:

答案 0 :(得分:0)

当我在第一个查询$query = "SELECT points FROM users WHERE user_id = '{$this->getID()}'";中围绕函数调用添加大括号时,它完美地运行。 Php无法像读取变量一样评估双引号字符串中的函数调用,在函数调用周围放置花括号可以让它正确地评估函数调用。