PDO返回列的所有NULL值?

时间:2018-05-17 02:03:26

标签: php sql pdo

我在这里有一个奇怪的问题,我希望有人有解决方案。如问题中所述,MySQL返回数据但所有值都是NULL

以下是查询:

public function getPort($id) {
    $sql = "SELECT c.id, c.port as number, d.type, d.spec, d.transfer as speed
            FROM details a
            LEFT JOIN port_to_drive b ON a.drive_id = b.drive_id
            LEFT JOIN port c ON b.port_id = c.id
            LEFT JOIN port_type d ON c.port_type = d.id
            WHERE a.id = $id";

    $stmt = $this->db->query($sql);

    return $stmt->fetchObject();
}

我正在尝试返回一个对象,但也尝试返回一个数组,结果是一样的。

以下是它的回报:

object(stdClass)[116]
public 'id' => null
public 'number' => null
public 'type' => null
public 'spec' => null
public 'speed' => null

如果我使用fetch()并返回一个数组,那么索引就在那里,但值仍为NULL。当我直接在MySQL中运行此查询时,我得到了我期待的数据。

如果有帮助,以下是我在PDO连接上设置的属性。

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false

我怀疑可能与FROMWHERE条款中的表格中没有选择任何内容有关。

这是直接来自MySQL的结果。查询肯定会返回一行。

enter image description here

0 个答案:

没有答案