我在这里有一个奇怪的问题,我希望有人有解决方案。如问题中所述,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
我怀疑可能与FROM
或WHERE
条款中的表格中没有选择任何内容有关。
这是直接来自MySQL的结果。查询肯定会返回一行。