Показать сообщение отдельно
  #6 (permalink)  
Старый Вчера, 14:03
Новичок на форуме
Отправить личное сообщение для akiraki22lvl Посмотреть профиль Найти все сообщения от akiraki22lvl
 
Регистрация: 09.09.2025
Сообщений: 9

Ловить ошибку - самый простой и надёжный способ: оборачиваешь INSERT или UPDATE в try/catch (если используешь PDO) и обрабатываешь PDOException. База сама сообщает, что данные не подходят по типу или длине.
try {
    $stmt = $pdo->prepare("INSERT INTO table (field) VALUES (:val)");
    $stmt->execute(['val' => $data]);
} catch (PDOException $e) {
    echo "Данные не подошли: " . $e->getMessage();
}

Проверить заранее без SELECT можно вручную. Для строк: проверяешь длину через strlen() или mb_strlen() и сравниваешь с длиной поля в MySQL (VARCHAR(255) → 255 символов). Для чисел — проверяешь диапазон: TINYINT — от -128 до 127 и так далее.
$maxLength = 255;
if (mb_strlen($data) > $maxLength) {
    echo "Данные слишком длинные!";
}


Если заранее знаешь структуру поля, можно полностью контролировать данные без лишних запросов.
Ответить с цитированием