Ответ
Результат зависит от используемого драйвера (PDO или mysqli) и метода выборки.
С PDO (как я чаще всего использую):
$stmt = $pdo->query("SELECT id, name FROM users WHERE active = 1");
// Вернет массив всех строк как ассоциативные массивы
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Пример: [ ['id' => 1, 'name' => 'Alice'], ['id' => 2, 'name' => 'Bob'] ]
// Или можно получать строки по одной
while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {
echo $row->name; // Объект stdClass
}
Если строк нет, fetchAll() вернет пустой массив []. При ошибке в запросе (например, синтаксической) будет выброшено исключение PDOException, если установлен режим PDO::ERRMODE_EXCEPTION.
С MySQLi:
$result = $mysqli->query("SELECT name FROM users");
// Вернет все строки как ассоциативный массив
$rows = $result->fetch_all(MYSQLI_ASSOC);
Если запрос не вернул данных, $rows будет пустым массивом. При неудачном запросе (например, ошибка в SQL) $result будет false.
Ключевой момент: Всегда нужно проверять результат на успешность и обрабатывать потенциальные исключения, а не полагаться на данные по умолчанию.