Как вставлять записи в базу данных со значением null, если переменная пустая?

Для вставки записей в базу данных с помощью PHP с возможностью вставки значений NULL в случае, если переменная пустая, можно использовать следующий подход.

Предположим, у нас есть база данных MySQL, таблица users с полями id, name и age, где age может принимать значение NULL. Мы хотим вставить новую запись, указывая имя пользователя и возраст (если он есть).

Пример использования PHP и MySQLi:

// Подключение к базе данных MySQL
$mysqli = new mysqli("хост", "пользователь", "пароль", "база_данных");

// Проверка соединения
if ($mysqli->connect_error) {
    die("Ошибка соединения: " . $mysqli->connect_error);
}

// Подготовка данных для вставки
$name = isset($_POST['name']) ? $_POST['name'] : null;
$age = !empty($_POST['age']) ? $_POST['age'] : null;

// Готовим запрос для вставки данных
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$stmt->bind_param("si", $name, $age);

// Выполнение запроса
if ($stmt->execute()) {
    echo "Запись успешно добавлена в базу данных.";
} else {
    echo "Ошибка при добавлении записи в базу данных: " . $stmt->error;
}

// Закрытие подготовленного запроса и соединения
$stmt->close();
$mysqli->close();

В данном примере мы используем bind_param() для привязки переменных к параметрам запроса. Тип s означает строку, а i - целое число. Если переменная $age пустая, в запрос будет передано значение NULL.

Нужно также обратить внимание, что этот пример не включает проверку пользовательских данных на безопасность, такие как предотвращение SQL-инъекций. В реальном приложении необходимо использовать дополнительные меры безопасности, такие как подготовленные запросы или ORM.