为什么不使用PDO从数据库获取结果

时间:2018-03-20 10:05:19

标签: php pdo backend

我正在使用PDO和OOP。我有这样的代码:

public function selectOne($id) {
    $sql = "SELECT * FROM emps WHERE id = ':id'";
    $stmt = $this->connect()->prepare($sql);
    $stmt->bindValue(":id", $id);
    $stmtExec = $stmt->execute();
    if ($stmtExec->rowCount() > 0) {
        echo "got results";
    } else {
        echo 'nothing';
    }
}

当我尝试运行此操作时,它会给我一个错误:Fatal error: Uncaught Error: Call to a member function rowCount() on boolean

我在哪里做错了。我是Php的新手。谢谢!

1 个答案:

答案 0 :(得分:1)

命名占位符:id周围不需要单引号。

$sql = "SELECT * FROM emps WHERE id = :id";

编辑: 另外,正如@Jon Stirling正确陈述的那样,$stmt->execute()返回一个布尔值。方法rowCount()应该在PDOStatement对象上执行(您的$stmt变量)。

http://php.net/manual/en/pdostatement.rowcount.php