使用PDO和WHERE子句准备语句

时间:2016-03-13 17:49:30

标签: php mysql pdo prepared-statement quotes

我正在尝试完成使用PDO类的预备语句。我的具体问题是,为了上帝的缘故,我无法将WHERE子句之后的:val转换为引发SQL语句所需的引号。我已经尝试了它以及quote()函数,但似乎没有任何工作,我很确定我错过了一些但我无法找到它。声明不能是错误,因为我直接在我的数据库中测试它并且它有效 这是我的代码:

public function find($column, $value){
    $stmt = $this->connection->prepare("
        SELECT *
         FROM benutzer
         WHERE $column = :val
    ");
    //$stmt->bindParam(":col", $this->connection->quote($column), PDO::PARAM_STR);
    $stmt->bindValue(":val", $this->connection->quote($value), PDO::PARAM_STR);
    $stmt->execute();
    // Set the fetchmode to populate an instance of 'User'
    // This enables us to use the following:
    //     $user = $repository->find(1234);
    //     echo $user->firstname;
    $stmt->setFetchMode(PDO::FETCH_CLASS, 'User');
    return $stmt->fetch();
}
编辑:正如我所提到的,我没有找到一个完全满足我的需求的答案。问题是我尝试过在可靠社区找到的所有不同方法,但没有一个方法可以帮助我。

0 个答案:

没有答案