Система пытается вставить 0 в качестве первичного ключа в таблицу tbl_client_locations, хотя для столбца id установлено Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Система пытается вставить 0 в качестве первичного ключа в таблицу tbl_client_locations, хотя для столбца id установлено

Сообщение Anonymous »

Я столкнулся с ошибкой SQLSTATE[23000] с кодом 1062, указывающей на повторяющуюся запись «0» для ключа «PRIMARY» при попытке вставить новую запись в таблицу tbl_client_locations в моем приложении PHP. Ошибка возникает при первом запросе выполнения() в функции addNewLocation(), хотя столбец id в таблице установлен в качестве первичного ключа и имеет атрибут AUTO_INCREMENT. Я не могу понять, почему приложение пытается вставить 0 в качестве идентификатора, что нарушает ограничение первичного ключа.

Код: Выделить всё

function addNewLocation($req) {
try {
print_r($req);
echo "   ";
$sql = "INSERT INTO $this->tbl_client_locations (client_id, location_name, created_at, updated_at)
VALUES (:client_id, :location_name, :created_at, :updated_at)";
$this->query($sql);
$this->bind(':client_id', $req['client_id']);
$this->bind(':location_name', trim($req['name']));
$this->bind(':created_at', date('Y-m-d H:i:s'));
$this->bind(':updated_at', date('Y-m-d H:i:s'));
$this->execute(); // Error occurs here
$location_id = $this->lastInsertId();

// Additional code follows...

return $location_id;
} catch (Exception $e) {
// Log detailed exception information
echo "An error occurred while adding the location. Please try again later.";
print_r($e->getMessage());
die;
}
}

Я получаю сообщение об ошибке -

SQLSTATE[23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись '0' для ключа 'PRIMARY'
Код: 23000
Файл: C:\xampp\htdocs\lazymonkey-full-saas-new\api\models\Database.php Строка: 59
Трассировка стека: #0 C:\xampp\htdocs\lazymonkey-full-saas-new\api \models\Database.php(59): PDOStatement->execute()
...

Код: Выделить всё

tbl_client_locations has the following relevant columns:
id (Primary Key, AUTO_INCREMENT)
client_id
location_name
created_at
updated_at

Столбец id установлен в базе данных как AUTO_INCREMENT, гарантируя, что база данных автоматически присваивает уникальное значение идентификатору для каждой новой записи.
Я проверил, что столбец id делает это не отображается явно в запросе INSERT, что должно позволить базе данных автоматически присваивать значение первичного ключа.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ions-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»