Php prepare()函数出现错误
当我遇到错误时,我正在测试使用脚本登录 致命错误:对第30行/CMS/index.php中的非对象调用成员函数prepare 我检查了第30行并绕过了第30行,但我看不出错误在哪里:Php prepare()函数出现错误,php,mysql,pdo,Php,Mysql,Pdo,当我遇到错误时,我正在测试使用脚本登录 致命错误:对第30行/CMS/index.php中的非对象调用成员函数prepare 我检查了第30行并绕过了第30行,但我看不出错误在哪里: $userp = $sql->prepare("SELECT user, passwd FROM users WHERE user = :username AND passwd = :password LIMIT 1"); $userp->execute(array( '
$userp = $sql->prepare("SELECT user, passwd FROM users WHERE user = :username AND passwd = :password LIMIT 1");
$userp->execute(array(
'username' => $username,
'password' => $passwd
));
错误是我没有声明$sql变量。这就是罪过。在运行查询之前,您需要检查并确保$sql被创建为PDO实例。如果连接失败,$sql将为空。。。检查的一个好方法是:
$sql = null;
try {
$sql = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
if($sql instanceof PDO)
{
$userp = $sql->prepare("SELECT user, passwd FROM users WHERE user = :username AND passwd = :password LIMIT 1");
$userp->execute(array(
'username' => $username,
'password' => $passwd
));
}
else
{
// $Sql is null, and not an instance of PDO
}
你有什么问题吗,或者你只是在报告你目前的发展状况?