gpt4 book ai didi

mysql - 如何检查查询是否返回 true 或 false 以替换 PDO 中的 mysql_error()

转载 作者:行者123 更新时间:2023-11-29 12:04:38 27 4
gpt4 key购买 nike

我正在创建一个基于 Web 的应用程序,并且我正在使用 PDO 作为我的数据库。我有一个查询,它从登录表中选择所有内容,其中 username=somethingpassword=something

我的代码:

$query = $db->prepare("SELECT * FROM login WHERE username=:username AND password=:password");
$query->bindParam(':username',$username);
$query->bindParam(':password',$password);
$query->execute();

但是我想检查查询返回 true 还是 false。例如在 mysql 中我们常说:

$query = mysql_query("SELECT * FROM login WHERE username='$username' AND password='$password'  "); 
if($query == false){
die(mysql_error());
}

我的问题是,如何使用 PDO 检查查询是否返回 false 或 true 并给出错误?这将帮助我在开发过程中发现代码错误。

我要用什么来替换mysql_error()

最佳答案

我们将 PDO 设置为异常模式。

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

我们用 try/catch block 包装查询。如果抛出异常,我们会捕获它。这相当于使用 if(!mysql_query($query)) echo mysql_error();

你的例子是

try
{
$query = $db->prepare("SELECT * FROM login WHERE username=:username AND password=:password");
$query->bindParam(':username',$username);
$query->bindParam(':password',$password);
$query->execute();

$result = $query->fetchAll(PDO::FETCH_ASSOC);
}
catch(PDOException $e)
{
echo "Whoopsie, an error occurred! Message: ". $e->getMessage();
}

关于mysql - 如何检查查询是否返回 true 或 false 以替换 PDO 中的 mysql_error(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31742930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com