出于某种原因,我的一些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中对数据库运行它们来检查所有这些,以确保它们都能正常工作,并且我已经回显了所有输入值以确保它们被正确传输。为什么我可能会在某些查询中获取空值而不是其他查询?
答案 0 :(得分:0)
当我在第一个查询$query = "SELECT points FROM users WHERE user_id = '{$this->getID()}'";
中围绕函数调用添加大括号时,它完美地运行。 Php无法像读取变量一样评估双引号字符串中的函数调用,在函数调用周围放置花括号可以让它正确地评估函数调用。