将连接页面更改为PDO并获得mysql_error()

时间:2012-11-04 02:24:38

标签: php mysql pdo

正在查看我的代码,将我的所有查询都转换为准备好的查询(PDO)。我相应地改变了我的连接页面。当我清理我的功能页面时,我遇到了错误mysql_error() expects parameter 1 to be resource, integer given,它引用了我的电子邮件功能

email_exists($email){
    $query1 = mysql_query("SELECT COUNT(user_id) FROM tempusers WHERE 
    `email` = '$email'") OR die(mysql_error(0));
    $email = sanitize($email);

    return (mysql_result($query1,0)==1)? true : false;
}

因为它是一个功能页面,这意味着我无法调用连接页面中的变量,再加上我仍然坚持旧查询的方式,我很难修复这个查询。我对这个查询过程中的任何想法以及任何一般提示表示感谢。

1 个答案:

答案 0 :(得分:2)

您应该像处理其他地方一样处理函数中的错误。

但是,由于这是在函数内部,因此您需要在函数范围内使连接可用。

有几种方法可以做到这一点,一些例子(从好不到......):

  1. 在您的函数中声明您的PDO连接变量全局。我不建议将其作为最终解决方案,但是当你改进时它会起作用;
  2. 将PDO连接添加为您的函数的附加参数。虽然优于1.,但您需要更改所有函数调用以包含新参数;
  3. 重构为OOP并使用依赖注入将您的PDO连接添加到您的电子邮件类/对象。