Произошла ошибка базы данных. Повторяющаяся запись '119867-en_GB' для ключа 'PRIMARY' - PullRequest
0 голосов
/ 14 января 2020

Я использую codeigniter для вставки данных со своей страницы в базу данных, и я получаю эту ошибку

<h1>A Database Error Occurred</h1>
        <p>Error Number: 1062</p><p>Duplicate entry '119867-en_GB' for key 'PRIMARY'</p><p>INSERT INTO `ProjectTableName` (`id`, `lang`, `name`) VALUES (119867, 'en_GB', 'test data')</p><p>Filename: models/modelFileLocation.php</p><p>Line Number: 48</p>   </div>

Вот мой код в модели для вставки данных в базу данных

$this->db->insert('ProjectTableName', array('id' => $table_id,
                                          'lang' => $lang,
                                          'name' => $name));

Как я могу решить эту ошибку, использую codeignter 3

Ответы [ 3 ]

0 голосов
/ 14 января 2020

Если вы хотите убедиться, что данные возвращены, вы также можете использовать эти коды,

$data = [
    'lang' => $lang,
    'name' => $name,
];

$this->db->set($data)->insert('ProjectTableName');

if($this->db->affected_rows() > 0) {
  return true;
} else {
  return false;
}

Количество столбцов, взаимодействующих таким образом, вернется, и если значение true больше 0, оно вернет истину.

0 голосов
/ 14 января 2020

Я уверен, что ваша проблема определенно вызвана тем, что я написал ниже.

Поле 'lang' в таблице выбрано как 'первичный ключ', а поля первичного ключа принимают только одно из данных .

Правильный пример

lang
----
 a
 b
 c
 d

Если ситуация с таблицей такая и неправильная

lang
----
 a -> 1
 a -> 2
 c
 d

не может содержать два данных «a» в поле первичного ключа, укажите вместо этого идентификатор и установить его в качестве первичного ключа. как говорится в ошибке, в поле первичного ключа есть повторяющаяся запись.

Хорошая работа ..

0 голосов
/ 14 января 2020

вам не нужно отправлять идентификатор в массив вставки. удалите его из массива и сделайте автоинкремент в базе данных. Просто используйте код ниже

$this->db->insert('ProjectTableName', array(
                                      'lang' => $lang,
                                      'name' => $name));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...