使用DESCRIBE在PDO预处理语句中使用参数

时间:2012-09-11 15:40:17

标签: php mysql pdo schema

在我看来,这个cose对于标准查询是可以的,但在涉及到DESCRIBE时却没有:

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

任何人都可以确认?除手动附加表名之外是否有变通方法?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

$q = $dbh->prepare(sprintf('DESCRIBE %s', $this->ormTable));
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_ASSOC);