【问题标题】:How to get number of rows with fetchColumn and bindParam如何使用 fetchColumn 和 bindParam 获取行数
【发布时间】:2013-02-14 05:49:42
【问题描述】:

为什么这不起作用

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

【问题讨论】:

  • 另一个错字/缺少错误报告问题...

标签: pdo prepared-statement rowcount prepare sqlbindparameter


【解决方案1】:

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

所以,而不是

SELECT * FROM

你必须成功

SELECT count(*) FROM

你就会得到那个号码。

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

为什么这不起作用

始终按照tag wiki中的说明连接到 PDO
你会知道的。

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 2012-04-09
    • 2015-06-22
    • 2015-04-27
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多