在我看来,这对于标准查询来说是可以的,但在涉及到 DESCRIBE 时则不行:
$q = $dbh->prepare("DESCRIBE ?");
$q->execute(array($this->ormTable));
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);
任何人都可以确认吗?除了手动附加表名之外,还有其他解决方法吗?
确保 ormTable 不会受到外部影响(SQL 注入等)或正确引用语法使用(不要为此使用 PDO::quote())
$q = $dbh->prepare("DESCRIBE ".$this->ormTable);
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);
$q = $dbh->prepare(sprintf('DESCRIBE %s', $this->ormTable));
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);