PDO bindValue,bindParam和execute()返回空数组

时间:2016-10-11 18:15:53

标签: php mysql pdo

我有这个类来查询数据库中的表。

class QueryBuilder {

    private $pdo;
    public function __construct($pdo) {
        $this->pdo = $pdo;
    }
    public function getAll($table) {
        $stm = $this->pdo->prepare("select * from :targetTable");
        $stm->bindValue(':targetTable', 'albums', PDO::PARAM_STR);
        $stm->execute();
        return $stm->fetchAll();
    }
}

每次使用bindValue函数时,我都会返回一个空数组。 如果我打开错误报告模式,则说明

  

PDOStatement :: execute():SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的“相册”附近使用正确的语法

当我使用时

  $stm = $this->pdo->prepare("select * from albums");

它的工作方式与预期相符。函数由

调用
$query->getAll('albums');

感谢您的帮助

0 个答案:

没有答案