Alex Rivera | Logout

pdo - Call to a member function prepare() on a non-object

Asked 2011-03-17T22:42:59.610
16

This code get an error:

Fatal error: Call to a member function prepare() on a non-object in C:\Users\fel\VertrigoServ\www\login\validation.php on line 42

CODE:

   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;
            }
        }
    }

What is the possible cause? Another question, What is the equivalent to mysql_num_rows? sorry, I am newbie with pdo

Edit
Report

3 Answers

23

$pdo is undefined. You're not declaring it inside the function, and it isn't being passed in as an argument.

You need to either pass it in (good), or define it in the global namespace and make it available to your function by placing global $pdo at the top (bad).

answered 2011-03-17T22:44:28.683
0

You may also get this error from active, unbuffered queries still active.

so, on line 41,

$stmt = null;
answered 2011-09-12T20:08:57.897
0

I was getting the same error: Then I saw I called my class after I had closed the PDO connection.

answered 2013-04-02T19:18:21.727

Your Answer