我正在开发需要登录页面的网络应用程序,一切正常,直到我尝试转换为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';}
Run Code Online (Sandbox Code Playgroud)
出现警告:
警告:PDO :: exec()期望参数1为字符串,对象在...中给出
并且即使我插入正确的参数,它也会返回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();
Run Code Online (Sandbox Code Playgroud)
另请注意,这rowCount()是一个方法,而不是属性,并且在使用SELECT查询时不能依赖它的值.有关rowCount()更多信息,请参见手册页.
此外,当您发送密码等信息时,不应使用GET,而应使用POST,并且应使用盐渍哈希作为密码,而不是纯文本密码.有关更多详细信息,请参阅用于PHP密码的Secure hash和salt.
| 归档时间: |
|
| 查看次数: |
1583 次 |
| 最近记录: |