How to fix "Call to undefined method bind_param()" error
20
I'm getting this error in my PHP application:
**"Uncaught Error: Call to a member function bind_param()"**
This happens when I try to use prepared statements with MySQLi. What causes this error and how can I fix it?
1 Answer
0
You get this error when you try to connect to a database using the MySQLi extension but do not have a valid MySQLi statement object to call the `bind_param()` method.
The `bind_param()` method is used to create a MySQLi statement object, so that you can bind parameters in an SQL query. But, if you do not have a valid MySQLi statement object, this method cannot be called.
There can be several possible reasons for this error:
## 1. MySQLi statement object was not created
You did not call the `prepare()` method to create a MySQLi statement object.
## 2. MySQLi statement object is incorrect
You have called `prepare()` method to create a MySQLi statement object, but this object is incorrect or null.
## 3. SQL query is incorrect
Your SQL query is incorrect or there is a syntax error, due to which there is a problem in creating the MySQLi statement object.
To resolve this error, you have to follow these steps:
## 1. Create a MySQLi statement object
Call `prepare()` method to create your MySQLi statement object.
## 2. Check the MySQLi statement object
Check your MySQLi statement object to see if it is valid or not.
## 3. Check the SQL query
Check your SQL query to see if it is wrong or has a syntax error.
For example:
```php
$stmt = $mysqli->prepare("SELECT * FROM table WHERE id = ?");
if (!$stmt) {
echo "MySQLi statement object not created";
exit;
}
$stmt->bind_param("i", $id);
$stmt->execute();
```
This code calls the `prepare()` method to create a MySQLi statement object and checks if the object was created successfully before calling `bind_param()`.