我想在一个空表上执行 SELECT,但我仍然想取回包含所有列名的单个记录。我知道还有其他方法可以从表中获取列名,但我想知道是否可以使用某种 SELECT 查询。
当我直接在 MySQL 中运行它时,我知道它是有效的:
SELECT * FROM cf_pagetree_elements WHERE 1=0;
但我使用的是 PHP + PDO (FETCH_CLASS)。这只会返回一个空对象,而不是包含所有列名(具有空值)的行。因此出于某种原因,该查询不适用于 PDO FETCH_CLASS。
$stmt = $this->db->prepare ( $sql );
$stmt->execute ( $bindings );
$result = $stmt->fetchAll ( \PDO::FETCH_CLASS, $class );
print_r($result); // Empty object... I need an object with column names
有人知道我是否可以尝试另一种方法吗?
最佳答案
添加到什么w00 answered , 有一个甚至不需要虚拟表的解决方案
SELECT tbl.*
FROM (SELECT 1) AS ignore_me
LEFT JOIN your_table AS tbl
ON 1 = 1
LIMIT 1
在 MySQL 中,您可以将 WHERE 1 = 1
更改为 WHERE 1
关于php - 选择空表但仍获取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854097/