This happens with code similar to
xyz->method()
where xyz
is not an object and therefore that method
can not be called.
This is a fatal error which will stop the script.
Most often a sign that the code has missing checks for error conditions. Validate that an object is actually an object before calling its methods.
A typical example would be
// ... some code using PDO
$statement = $pdo->prepare('invalid query', ...);
$statement->execute(...);
In the example above, the query cannot be prepared and prepare() will assign
false
to $statement
. Trying to call the execute()
method will then result in the Fatal Error because false
is a "non-object". It is a boolean.
If even the
->prepare
is failing then your $pdo
database handle object didn't get passed into the current scope. Find where it got defined. Then pass it as parameter, store it as property, or share it via the global scope.