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 に答える