0

为什么这不起作用

   $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 值上使用更多时,代码会崩溃。为什么不能有更多的一个值来检查?

4

1 回答 1

0

要使用 fetchColumn 获取行数,您必须在查询中选择此数字

所以,而不是

SELECT * FROM

你必须成功

SELECT count(*) FROM

你就会有那个号码。

bindParam 必须像往常一样使用,就像以前一样。
但是,您必须避免代码中的拼写错误和类似错误。
当然,您必须设置适当的错误报告,以使自己能够发现所有错误。

为什么这不起作用

始终按照标签 wiki中的说明连接到 PDO
,您就会知道。

于 2013-02-28T06:31:19.387 回答