【问题标题】:PDO fetch friendsPDO 获取好友
【发布时间】:2014-07-23 01:26:40
【问题描述】:

我是 PDO 的新手,我正在尝试获取已经是我朋友的用户,但由于某种原因它没有获取或告诉我他们已经是我的朋友。如果我不包含 COUNT('username') 并且如果我删除 COUNT 会告诉我向已经是我朋友的用户发送朋友请求。有人可以指出我的问题。我知道它在 check_frnd_query 以及我试图获取用户的方式中。谢谢

数据库'frnds'表

id = int
user_one = varchar 255
user_two = varchar 255

在朋友表中,我的用户名是 user_one,而 user_two 是我朋友的用户名。

$check_frnd_query = $this->db->prepare("SELECT COUNT('username') FROM `frnds` WHERE ('user_one'='$my_id' AND 'user_two'='$userone') OR ('user_one'='$userone' AND 'user_two'='$my_id')");

$check_frnd_query->bindValue(':user_one', $user_one, PDO::PARAM_STR);

$check_frnd_query->bindValue(':user_two', $user_two, PDO::PARAM_STR);

try{

      $check_frnd_query->execute();

      $rows = $check_frnd_query->fetchAll(PDO::FETCH_ASSOC);

      if(!empty($rows)){

         echo 'Already Friends';

      }else{
         echo 'Send Request Button!';
      }

}

【问题讨论】:

  • 请在提问前阅读并学习基础教程。在您的第一个查询中存在一些令人眼花缭乱的缺陷,并且绑定的值甚至与查询不匹配

标签: php pdo


【解决方案1】:

您没有正确绑定参数。在 mysql 查询中,它应该是 :user_one 而不是 $my_id 和 :user_two 而不是 $userone。所以你的查询变成了:

$check_frnd_query = $this->db->prepare("
  SELECT COUNT('username')
  FROM `frnds`
  WHERE ('user_one'=:user_one AND 'user_two'=:user_two) OR
    ('user_one'=:user_two AND 'user_two'=:user_one)");

【讨论】:

  • 如果您想检查数据库字段,那些围绕 user_one 和 user_two 的引号将无济于事。
猜你喜欢
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多