未捕获的 PDOException:语法错误或访问冲突:您的 SQL 语法中有错误

问题描述 投票:0回答:1

我正在努力尝试查询 PHP 类中的数据库。我在尝试回显电子邮件地址时遇到错误。我是类新手,似乎无法让它工作,但如果我执行普通的 PHP 函数,它就可以正常工作。

// using composer autoload.php

$user = new User($pdo);
$email = $user->getEmail($username);
echo $email

$pdo 来自连接到 MariaDB 数据库的database.php。

以下是类文件:

class User
{
    private $dbc;

    public function __construct(\PDO $pdo)
    {
        $this->dbc = $pdo;
    }

    public function getEmail($username)
    {
       $stmt = $this->dbc->query('SELECT * FROM users WHERE username=?');
       $stmt->execute([$username]);
       $request = $stmt->fetch();
       return $request['email'];
    }
}
php mysql pdo mariadb
1个回答
0
投票

尝试将其更改为:

$stmt = $this->dbc->query('SELECT * FROM users WHERE username=?');
更改为
$stmt = $this->dbc->prepare('SELECT * FROM users WHERE username=?');
,这将为稍后绑定的值准备带有占位符的语句。

© www.soinside.com 2019 - 2024. All rights reserved.