php - 调用未定义的方法 PDO::execute()

标签 php pdo

我正在尝试编写页面登录代码,但我被这个错误阻止了

请告诉我这里的错误

<?php
@session_start();
include("../../connexion/connexion.php");
class login_class {
        public $user;
        public $password;
        public $connexion;
    public function check_login() {
        try {
            $cn = new class_connect();
            $this->connexion = $cn->connect(null);
            $result = $this->connexion->execute("select * from user where username='$this->user' and password='$this->password'");

                        $data = $result->fetchAll(PDO::FETCH_OBJ);


            if (!empty($data[0]->id_user)) {
                return true;
            }else {
                return false;
            }
        }catch(PDOException $ex) {  
            echo $ex->getMessage();
        }
    }
    public function __construct($user) {
        if($user){
            $this->user = $user["username"];
            $this->password = $user["password"];
        }
    }

}
?>

最佳答案

->execute() 用于准备好的语句。例如

$stmt = $dbh->prepare('some query here');
$stmt->execute();

您正在尝试直接在主数据库对象上执行查询。对于 PDO,这意味着

 $dbh->exec('query goes here');

你确实应该研究一下准备好的语句。您很容易受到 SQL injection attacks 的攻击照原样,由于您一开始就使用 PDO,所以不编写安全查询基本上是不可原谅的。

关于php - 调用未定义的方法 PDO::execute(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843177/

相关文章:

php - 是否有命名 Controller 功能的约定?

php - Laravel 形式在 Debug模式下提交但在正常模式下不起作用

php - PDO SQLite 查询零结果问题

php - 当我尝试使用 PDO 时,我无法从我的 mysql 数据库中得到任何结果

php - 使用 Blade 转义字符串,渲染 HTML

php - 这个错误是怎么回事? nginx

php - 为什么反引号在 PDO 查询中失败?

javascript - 如何使用 while 循环将 php 中的数据传输到 javascript

php - 参数号无效 : parameter was not defined - PHP/MYSQL

php/mysql 帮助不需要输出错误