Что вернется если выполнить SELECT запрос в PHP?

«Что вернется если выполнить SELECT запрос в PHP?» — вопрос из категории Базы данных, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Результат зависит от используемого драйвера (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.

Ключевой момент: Всегда нужно проверять результат на успешность и обрабатывать потенциальные исключения, а не полагаться на данные по умолчанию.