为什么这不起作用
$sth = $pdo->prepare("SELECT * FROM tempusers WHERE tempusers.username = :username AND tempuser.email = :email AND password = :password");
$sth->bindParam(':username', $register_data['username'], PDO::PARAM_STR);
$sth->bindParam(':email', $register_data['email'], PDO::PARAM_STR);
$sth->bindParam(':password', $register_data['password'], PDO::PARAM_STR);
$sth->execute();
if($sth->fetchColumn() > 0) {
echo 'yes';
}else{
echo 'no';
}
然后当我运行此代码时,它可以正常工作
$sth = $pdo->prepare("SELECT * FROM tempusers WHERE tempusers.username = :username");
$sth->bindParam(':username', $register_data['username'], PDO::PARAM_STR);
$sth->execute();
if($sth->fetchColumn() > 0) {
echo 'yes';
}else{
echo 'no';
}
当我尝试使用更多然后在bindParam值时代码崩溃。为什么不能有更多的值来检查?
答案 0 :(得分:0)
要使用fetchColumn获取行数,您必须在查询中选择此数字
所以,而不是
SELECT * FROM
你必须成功
SELECT count(*) FROM
你将拥有这个号码。
bindParam必须像往常一样使用,就像你之前一样 但是,您必须避免在代码中出现拼写错误等错误 当然,您必须设置正确的错误报告,以便能够发现所有错误。
为什么这不起作用
始终连接到PDO,如tag wiki所述 你会知道的。