Returns a mysqli_result object for a statement that produces a result set.
The objective is to understand the behavior and operational limits, not only the method name.
What It Does
Returns a mysqli_result object for a statement that produces a result set.
Syntax and Return Value
mysqli_stmt::get_result(...)
The return value and exceptional cases depend on the call described here: Requires mysqlnd and must not be combined with store_result on the same execution.
Requirements: install and enable the corresponding PHP driver or extension and configure the service before running the examples.
Example 1: Basic Use
The SELECT assumes users(id,email) in an actual MySQL database; output depends on its rows.
<?php
$host = getenv('DB_HOST'); $user = getenv('DB_USER'); $password = getenv('DB_PASSWORD'); $database = getenv('DB_NAME');
if (!$host || !$user || $password === false || !$database) throw new RuntimeException('Missing database configuration');
$mysqli = new mysqli($host, $user, $password, $database);
$mysqli->set_charset('utf8mb4');
$userId = 3;
$stmt = $mysqli->prepare("SELECT id, email FROM users WHERE id >= ? ORDER BY id");
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
foreach ($result as $row) echo $row["email"] . PHP_EOL;
Example 2: A Second Scenario
The SELECT assumes users(id,email) in an actual MySQL database; output depends on its rows.
<?php
$host = getenv('DB_HOST'); $user = getenv('DB_USER'); $password = getenv('DB_PASSWORD'); $database = getenv('DB_NAME');
if (!$host || !$user || $password === false || !$database) throw new RuntimeException('Missing database configuration');
$mysqli = new mysqli($host, $user, $password, $database);
$mysqli->set_charset('utf8mb4');
$userId = 5;
$stmt = $mysqli->prepare("SELECT id, email FROM users WHERE id >= ? ORDER BY id");
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
foreach ($result as $row) echo $row["email"] . PHP_EOL;
Example 3: Practical Checks
The SELECT assumes users(id,email) in an actual MySQL database; output depends on its rows.
<?php
$host = getenv('DB_HOST'); $user = getenv('DB_USER'); $password = getenv('DB_PASSWORD'); $database = getenv('DB_NAME');
if (!$host || !$user || $password === false || !$database) throw new RuntimeException('Missing database configuration');
$mysqli = new mysqli($host, $user, $password, $database);
$mysqli->set_charset('utf8mb4');
$userId = 8;
$stmt = $mysqli->prepare("SELECT id, email FROM users WHERE id >= ? ORDER BY id");
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
foreach ($result as $row) echo $row["email"] . PHP_EOL;
Important Behavior and Edge Cases
Requires mysqlnd and must not be combined with store_result on the same execution.
For production use, also account for error handling, data validation, resource limits and environment-specific driver behavior.
Comparison with Related Approaches
| Approach | Important distinction |
|---|---|
| mysqli_stmt::get_result | Returns a mysqli_result object for a statement that produces a result set. |
| Related API / pattern | bind_result and fetch retrieve statement columns without a mysqli_result object. |
Common Beginner Mistakes
| Mistake | Correct approach |
|---|---|
| Assuming the happy path covers edge cases | Requires mysqlnd and must not be combined with store_result on the same execution. |
| Using a related API interchangeably | bind_result and fetch retrieve statement columns without a mysqli_result object. |
Key Takeaways
- Returns a mysqli_result object for a statement that produces a result set.
- Requires mysqlnd and must not be combined with store_result on the same execution.
- bind_result and fetch retrieve statement columns without a mysqli_result object.
Choose this API or pattern when its exact semantics match your task, and verify the result against the database driver and runtime used by your application.