У меня проблема с добавлением новых данных в базу данных с использованием PDO.У меня есть форма, где есть несколько полей.Если я оставляю пустое поле, появляется ошибка.Проблема возникла, когда MySQL был обновлен на сервере.На другом сервере и локально проблема не появляется.Установить для сервера во всех формах значения по умолчанию 0 в полях будет очень сложно.
Версия базы данных: 10.3.13-MariaDB-100.cba.1-log - тестирование Debian
Пожалуйста, проверьте, не заполнили ли вы все поля и не сгенерировали ли ошибку.
Это нормально, когда я оставляю пустой ввод и генерируется ошибка?
Код PHP:
$config = require_once 'config.php';
try {
$db = new PDO(
"mysql:host={$config['host']};dbname={$config['database']};charset=utf8",
$config['user'],$config['password'],
[PDO::ATTR_EMULATE_PREPARES=>false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
}
catch(PDOException $error)
{
echo $error->getMessage();
exit('Database error!');
}
if (isset($_POST['dodaj'])) {
$pole1 = $_POST['pole1'];
$pole2 = $_POST['pole2'];
$pole3 = $_POST['pole3'];
$pole4 = $_POST['pole4'];
$query = $db->prepare("INSERT into pola VALUES (:pole1, :pole2, :pole3, :pole4)");
$query->bindValue(':pole1', $pole1, PDO::PARAM_INT);
$query->bindValue(':pole2', $pole2, PDO::PARAM_INT);
$query->bindValue(':pole3', $pole3, PDO::PARAM_INT);
$query->bindValue(':pole4', $pole4, PDO::PARAM_INT);
$query->execute();
}
HTML код:
<form method="post" action="#">
<input type="text" id="pole1" name="pole1">
<input type="text" id="pole2" name="pole2">
<input type="text" id="pole3" name="pole3">
<input type="text" id="pole4" name="pole4">
<input type="submit" name="dodaj" value="dodaj">
</form>
База данных:
pole1 |полюс2 |полюс3 |pole4
Неустранимая ошибка: Uncaught PDOException: SQLSTATE [22007]: Неверный формат даты и времени: 1366 Неверное целочисленное значение: '' для столбца ********
. pola
. pole3
в строке 1 в ************************ новый 1.php: 18 Трассировка стека: # 0 ******************** новый 1.php (18): PDOStatement-> execute () # 1 {main}, брошенный в ****************************** новый 1.php на линии 18