看不见的MYSQL错误

时间:2015-02-27 15:03:03

标签: php mysql pdo

我的MySQL声明收到以下错误 -

  

PHP致命错误:未捕获的异常' PDOException' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在':username'在第1行'

现在这里是我的代码的一部分,包括声明 -

    $dbh = pdo_users();

    $stmt = $dbh->query("SELECT * FROM users WHERE username=:username");
    $stmt->bindParam(':username', $username);
    $stmt->execute();
    $info = $stmt->fetchAll(PDO::FETCH_ASSOC); 

这是我的联系 -

function pdo_users()
{
try
{                                                                                         
    $connect = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $connect->setAttribute(PDO::ATTR_PERSISTENT, true);
}
catch (PDOException $e)
{
    header('Location: error.php');
}

return $connect;

}

1 个答案:

答案 0 :(得分:10)

这一行:

$stmt = $dbh->query("SELECT * FROM users WHERE username=:username");

您需要prepare,而不是query

$stmt = $dbh->prepare("SELECT * FROM users WHERE username=:username");