私は次の機能を持っています。引数で指定されたテーブルの行数を出力することを期待しています。
private function getTotalCount($tbl){
$sql = "SELECT count(*) FROM :tbl ;";
$sth = $this->db->prepare($sql);
$sth->execute(array(
':tbl' => $tbl
));
$data = $sth->fetch(PDO::FETCH_ASSOC);
print_r($data);
}
しかし、関数は何も印刷していません...
関数を次のように置き換えると:
private function getTotalCount($tbl){
$sql = "SELECT count(*) FROM $tbl ;";
$sth = $this->db->prepare($sql);
$sth->execute();
$data = $sth->fetch(PDO::FETCH_ASSOC);
print_r($data);
}
その後、正常に動作し、行数を出力します。
質問: execute() 関数が :tbl パラメータを $tbl にバインドしないのはなぜですか??