テーブル名をバインドすることは可能ですか?
テーブルから列を読み取るクラスを作成し、フィールドタイプに応じて、フォーム入力を生成したいと思います。私がそうするとき$form = new form("users");
、コンストラクターは次のコードでテーブルからフィールド名を取得することから始めることになっています:
class form{
public function __construct($table, $skip = array("id")){
$pdo = new PDO('mysql:host=localhost;dbname=site;',USER,PASS);
$query = $pdo->prepare("DESCRIBE :table");
$query->bindValue(':table', $table, PDO::PARAM_STR, strlen($table));
$query->execute();
while($field = $query->fetch(PDO::FETCH_NUM)){
var_dump($field);
echo "<br /><br />";
}
unset($pdo);
}
}
これは、prepareステートメントで「:table」の代わりに「users」を指定すると問題なく機能しますが、バインドは機能しており、テーブル名をバインドしようとしているためだと確信しています。また、テーブル名などを渡すことができるようにしたいので、これをバインドする必要があります$_GET
。