使用PDO中的参数准备了带有DESCRIBE的语句


Using parameters in PDO prepared statements with DESCRIBE

在我看来,这个cose对于标准查询来说是可以的,但对于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);