0

出于某种原因,我的一些 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 中对数据库运行它们来检查所有这些以确保它们都正常工作,并且我已经回显了所有输入值以确保它们被正确传输。为什么我可能会在某些查询中得到空值,而在其他查询中却没有?

4

1 回答 1

0

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

于 2012-07-03T17:52:12.917 回答