fetchColumn()在简单查询时失败,但在另一个

时间:2015-10-15 14:05:36

标签: php mysql pdo

我需要第二双眼睛。我无法弄清楚为什么这个功能正常工作:

function get_password($db, $id) {
  try {
    $sql = $db->prepare('SELECT password FROM employee 
                         WHERE employee.emp_id = ?');
    $sql->bindParam(1, $id);
    $sql->execute();
    $password = $sql->fetchColumn();
  } catch(Exception $e) {
    echo $e->getMessage();
    die();
  }

  return $password;
}

并且此函数在fetchColumn()上失败:

function get_name($db, $email) {
  try {
    $sql = $db->prepare('SELECT login
                         FROM employee
                         WHERE email = ?');
    $sql->bindParam(1, $email);
    $sql->execute();
    $user_name = $sql->fetchColumn(0);

  } catch(Exception $e) {
    echo $e->getMessage();
    die();
  }
  return $user_name;
}

我已经验证了以下内容:

  • 我正在修剪电子邮件,因此没有多余的空白区域
  • 查询在命令行中运行
  • prepare()语句成功,errorInfo()不返回任何内容
  • bindParam()语句返回true,errorInfo()不返回任何内容
  • execute()语句返回1行,errorInfo()不返回任何内容
  • fetchColumn(0)语句返回False(ARGH !!!!),但errorInfo()仍然不返回任何内容。

我还尝试过只使用fetchColumn(),fetchAll和其他获取尝试。

我也试过在SELECT中重写这个:

'SELECT employee.login FROM employee WHERE employee.email = ?'

但结果是一样的。

这里有一些概念吗?关于如何调试这个的任何其他想法?

0 个答案:

没有答案