How to fix "Trying to get property 'num_rows' of non-object" error?

Asked 2 years ago 273 views 1 answer Modified 6 hours ago
25
I'm getting this error: **"Trying to get property 'num_rows' of non-object"** Here's my code: ```php // Query $query = "SELECT * FROM table_name WHERE column = 'value'"; // Preparation $sql = $conn->prepare($query); // Get result $result = $sql->get_result(); // Check number of rows if ($result->num_rows > 0) { $result = $result->fetch_assoc(); // my php code here } ``` What's causing this error and how can I fix it?
shama-naaz
50 reputation

1 Answer

32
This error occurs because `$result` is not a valid MySQLi result object. The issue is in your code flow. Here's how to fix it: ### The Problem You're calling `get_result()` on a prepared statement without executing it first. ### Correct Approach ```php prepare($query); // Bind parameters $stmt->bind_param("s", $value); // Execute the statement $stmt->execute(); // Get result $result = $stmt->get_result(); // Check number of rows if ($result->num_rows > 0) { $data = $result->fetch_assoc(); // Your PHP code here } // Close statement $stmt->close(); ?> ``` ### Alternative Approach (Direct Query) ```php num_rows > 0) { $data = $result->fetch_assoc(); // Your PHP code here } ?> ``` ### Key Points - Always execute prepared statements before getting results - Check if the query was successful before accessing properties - Use proper error handling to catch database errors - Close statements and connections when done
imran-nadwi
answered 1 years ago
You can use Markdown to format your answer.
Last edited: 5 months ago
Preview: