pdo - 在非对象上调用成员函数prepare()

anv*_*nvd 16 php pdo

此代码出错:

致命错误:在第42行的C:\ Users\fel\VertrigoServ\www\login\validation.php中的非对象上调用成员函数prepare()

码:

   function repetirDados($email) {
        if(!empty($_POST['email'])) {

            $query = "SELECT email FROM users WHERE email = ?";

            $stmt = $pdo->prepare($query); // error line: line 42

            $email = mysql_real_escape_string($_POST['email']);

            $stmt->bindValue(1, $email);

            $ok = $stmt->execute();

            $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

            if ($results == 0) {
                return true;
            } else {
                echo '<h1>something</h1>';
                return false;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

可能的原因是什么?另一个问题,相当于mysql_num_rows什么?对不起,我是pdo的新手

mea*_*gar 20

$pdo未定义.你没有在函数中声明它,并且它不是作为参数传递的.

您需要将其传递给(好),或者在全局命名空间中定义它,并通过置于global $pdo顶部(坏)使其可用于您的函数.