How to fix "mysqli_query() expects parameter 2 to be string" error
24
I'm getting this error when trying to execute a database query:
**"mysqli_query() expects parameter 2 to be string"**
Here's my code:
```php
$query = "SELECT * FROM table_name WHERE column = '" . $query . "'";
// Preparation
$query = $conn->prepare($query);
// Get result
$result = mysqli_query($conn, $query);
if ($result->num_rows > 0) {
$slugResult = $result->fetch_all();
// My PHP code here
}
```
What's wrong with this approach?
1 Answer
0
## mysqli_query() expects parameter 2 to be string
`mysqli_query(Parameter 1, Parameter 2);`
In mysqli_query() parameter 2 should be string.
**Problem here:**
Your var $query does not contain a string.
**Solution:**
Store in your var $query a string like:
`$query = "SELECT * FROM table_name WHERE column = 'value'";`
Do not store the prepared statement object in $query. Use separate variables:
```php
$query = "SELECT * FROM table_name WHERE column = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("s", $value);
$stmt->execute();
$result = $stmt->get_result();
```
Or use mysqli_query directly with string:
```php
$query = "SELECT * FROM table_name WHERE column = '" . mysqli_real_escape_string($conn, $value) . "'";
$result = mysqli_query($conn, $query);
```