PHP PDO Дублирующая запись для ключа 'PRIMARY' - PullRequest
0 голосов
/ 01 ноября 2019

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

Duplicate entry 'example@mail.com' for key 'PRIMARY'

код

include("../connect.php");
$this->con->exec('INSERT INTO users VALUES (null, "' . $this->email . '","' . $this->name . '","' . $pass . '",0,' . $this->isEmailConfirmed . ',"' . $this->token . '", "")');

//insert into another database
include("../another_directory/connect.php");
$this->con->exec('INSERT INTO users  VALUES (null, "' . $this->email . '","' . $this->name . '","' . $pass . '",0,' . $this->isEmailConfirmed . ',"' . $this->token . '", "")');
print_r($this->con->errorInfo());

null относится к первому полюuser_id, что составляет index и установлено на auto increment. Поле электронной почты primary key. Сейчас я пытаюсь зарегистрировать пользователей, но пользователь вставляется только в первую таблицу и не может быть вставлен в ту же таблицу в другой базе данных и получает дубликат первичной ошибки, хотя она никогда не добавлялась ранее.

Я попробовал традиционный способ вставки

insert into users (field1, field2) values ($value1, $value2)

Но я получаю ту же ошибку.

Как решить эту проблему?

1 Ответ

0 голосов
/ 01 ноября 2019

возможно, используя различные значения для соединений:

// Connection data (server_address, database, name, poassword)
$hostdb = 'localhost';
$namedb = 'database1';
$userdb = 'user';
$passdb = 'pass';

// Connection data2 (server_address, database, name, poassword)
$hostdb1 = 'localhost';
$namedb1 = 'database2';
$userdb1 = 'user';
$passdb1 = 'pass';

  // Connect and create the PDO object
  $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
  $conn1 = new PDO("mysql:host=$hostdb1; dbname=$namedb1", $userdb1, $passdb1);

  $conn->exec('INSERT INTO users VALUES (null, "' . $this->email . '","' . $this->name . '","' . $pass . '",0,' . $this->isEmailConfirmed . ',"' . $this->token . '", "")');
  $conn1->exec('INSERT INTO users  VALUES (null, "' . $this->email . '","' . $this->name . '","' . $pass . '",0,' . $this->isEmailConfirmed . ',"' . $this->token . '", "")');

    print_r($conn->errorInfo());
    print_r($conn1->errorInfo());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...