Home > Article > Backend Development > Why Am I Getting a 'Call to a member function prepare() on a non-object' Error in My PDO Code?
When attempting to validate user input using PDO, an error is encountered indicating that the prepare() method is being called on a non-object. This error occurs specifically on line 42 of the provided code.
To resolve this issue, inspect the code to ensure that the $pdo object is properly defined and accessible within the repetirDados() function. The error suggests that $pdo is not available in the current scope.
Confirm if $pdo is being passed as an argument to the function or if it is defined as a global variable. If neither of these scenarios is true, you can define $pdo within the global namespace and use the global keyword within the function to access it:
global $pdo;
Alternatively, you can pass $pdo as an argument to the repetirDados() function, ensuring that it is available within the function's scope.
The equivalent of mysql_num_rows in PDO is rowCount(). It returns the number of rows affected by the most recent query execution. In this case, you can use rowCount() to check if any rows were returned from the query:
if ($stmt->rowCount() == 0) { // No results found } else { // Results found }
The above is the detailed content of Why Am I Getting a 'Call to a member function prepare() on a non-object' Error in My PDO Code?. For more information, please follow other related articles on the PHP Chinese website!