gpt4 book ai didi

php - 警告:PDO::exec() 期望参数 1 为字符串

转载 作者:行者123 更新时间:2023-12-01 00:09:50 25 4
gpt4 key购买 nike

我正在开发需要登录页面的网络应用程序,一切正常,直到我尝试转换为 PDO 并使用准备好的查询,这是我的代码:

$req=$idconnex->prepare("SELECT * FROM `enseignant` WHERE ens_cin=:cin AND ens_pass=:pass");
$req->bindParam(':cin',$_GET["login"]);
$req->bindParam(':pass',$_GET["password"]);
$res=$idconnex->exec($req);
if(!empty($res) AND $res->rowCount==1)
{echo 'SUCCESS';}
else
{echo 'FAIL';}

警告出现:

Warning: PDO::exec() expects parameter 1 to be string, object given in...

即使我插入正确的参数,它也会返回 FAIL!

最佳答案

当你准备一个声明时,你需要execute而不是 exec并且您需要使用准备时设置的对象:

$req=$idconnex->prepare("SELECT * FROM `enseignant` WHERE ens_cin=:cin AND ens_pass=:pass");
$req->bindParam(':cin',$_GET["login"]);
$req->bindParam(':pass',$_GET["password"]);
$req->execute();

另请注意 rowCount()是一种方法,而不是属性,并且在使用 SELECT 查询时不能依赖它的值。请参阅有关 rowCount() 的手册页获取更多信息。

此外,当您发送密码等信息时,您不应该使用 GET,而应该使用 POST,并且您应该使用加盐哈希作为密码,绝不能使用纯文本密码。参见 Secure hash and salt for PHP passwords了解更多详情。

关于php - 警告:PDO::exec() 期望参数 1 为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721963/

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