How to fix "mysqli_query() expects parameter 2 to be string" error

Asked 1 years ago 363 views 1 answer Modified 7 hours ago
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?
shama-naaz
50 reputation

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); ```
imran-nadwi
answered 1 years ago
You can use Markdown to format your answer.
Last edited: 1 years ago
Preview: