2016-12-26 3 views
0

Введение
У меня есть база данных с именем пользователя , с двумя таблицами внутри: userinfo и usermeta. (ожидается, что usermeta будет расширена). На данный момент usermeta имеет два столбца user_meta_id, которые должны соответствовать user_id (оба первичных ключа) и user_info (со стандартным значением NULL). В части регистрации я добавляю все необходимые значения в таблицу userinfo (пароли и т. Д.). Я хочу, чтобы вызвать первичный ключ user_meta_id, чтобы установить идентификатор в usermeta и еще не установить значение user_info. Итак, я попробовал «INSERT INTO usermeta», но, очевидно, это не работает.Вставка без значения

Мой другой запрос, чтобы добавить информацию в таблице USERINFO является

INSERT INTO userinfo (user_name, user_email, user_password, user_sname) 
     VALUES ('$fname','$email','$encPassword','$sname') 

Вопрос
Как я могу вызвать user_meta_id установить идентификатор такой же, как user_id (оба выполняются запросы почти одновременно , подумал: «Значит, они устанавливают одинаковый идентификатор пользователя»)

Надеюсь, вы поймете мой вопрос, если у вас есть какие-либо вопросы по поводу моего вопроса или «фона», вы можете задать вопрос: D

Редактировать
Пользователь PHP код + SQL запросов:

$registerQuery = "INSERT INTO userinfo (user_name, user_email, user_password, user_sname) 
      VALUES ('$fname','$email','$encPassword','$sname')"; 
      $last_id = mysqli_insert_id($conn); 

Для добавления внешнего ключа SQL:

ALTER TABLE usermeta ADD FOREIGN KEY (user_meta_id) REFERENCES userinfo.user_id 
+0

Try, чтобы получить последнюю вставленную запись 'id'. после первого запроса. – Ionut

+0

Okee, что означает, что мой user_meta_id может быть автоматическим приращением? – Sander

+0

Это должен быть внешний ключ. Но вы также должны сохранить идентификатор с автоинкрементами. См. Мой ответ. – Ionut

ответ

0

Если вы используете

PDO:

$last_affected_id = $yourPdoConnectObject->lastInsertId(); 

http://php.net/manual/tr/pdo.lastinsertid.php

MySQLi:

$last_affected_id = mysqli_insert_id($connection); 

или

$last_affected_id = $connection->insert_id; 

http://php.net/manual/tr/mysqli.insert-id.php

Кроме того, если вы подключаете две таблицы с помощью ключа, один из них должен быть первичным ключом, а другой должен быть иностранный ключ

Внешний ключ:

http://www.w3schools.com/sql/sql_foreignkey.asp

https://www.youtube.com/watch?v=DiVGuOXpl34

https://www.youtube.com/watch?v=FCtGbrou5DM

+0

Привет, hakkikonu, спасибо за ваш ответ.Я смотрю на это, я по-прежнему относителен к sql, поэтому, пожалуйста, дайте мне минуту, чтобы понять, что происходит – Sander

+0

Я добавил 2 дополнительных видео youtube – hakiko

+1

OP явно не использует PDO – Martin

Смежные вопросы