1

在我看来,这对于标准查询来说是可以的,但在涉及到 DESCRIBE 时则不行:

$q = $dbh->prepare("DESCRIBE ?");
$q->execute(array($this->ormTable));
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);

任何人都可以确认吗?除了手动附加表名之外,还有其他解决方法吗?

4

2 回答 2

2

确保 ormTable 不会受到外部影响(SQL 注入等)或正确引用语法使用(不要为此使用 PDO::quote())

$q = $dbh->prepare("DESCRIBE ".$this->ormTable);
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);
于 2012-09-11T15:43:33.477 回答
0
$q = $dbh->prepare(sprintf('DESCRIBE %s', $this->ormTable));
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);
于 2012-09-11T15:44:56.550 回答