Мне нужно отправить значения имени пользователя, пароля, почты, имени и фамилии в две разные таблицы в моей базе данных. Я сделал это возможным с помощью этого кода, и я получил правильные значения. У меня есть одна проблема. Когда информация о пользователе попадает в таблицу «users», она автоматически генерирует один userId. Тот же самый userId мне нужно использовать и поместить в другую таблицу "usermeta", чтобы связать информацию с нужным пользователем. Теперь происходит то, что я получаю userId в таблице users, но в таблице usermeta userId = 0 для всех новых пользователей. Кто-нибудь может мне помочь?
if (isset($_POST['username']) and isset ($_POST['password'])) {
$username = $mysqli->real_escape_string($_POST['username']);
$password = md5($mysqli->real_escape_string($_POST['password']));
$email = $mysqli->real_escape_string($_POST['mail']);
$fname = $mysqli->real_escape_string($_POST['fname']);
$lname = $mysqli->real_escape_string($_POST['lname']);
$query = <<<END
INSERT INTO users(username,pass,email,admin)
VALUES('{$username}','{$password}','{$email}','{$_POST['admin']}')
END;
$q = <<<END
INSERT INTO usermeta(first_name,last_name)
VALUES('{$fname}','{$lname}')
END;
if ($mysqli->query($query) !== TRUE) {
die("Could not query database" . $mysqli->errno . " : " . $mysqli->error);
}
if ( $mysqli->query($q) !== TRUE) {
die("Could not query database" . $mysqli->errno . " : " . $mysqli->error);
header('Location:home.php');
}
}
Я получил форму ниже в коде, из которого поступает информация, поступающая в базу данных, но именно php-код выдает ошибку, которую, как я предполагаю, я исключаю из этого кода.
Спасибо!
EDIT:
Я пытался реализовать ваши разные комментарии. Большое спасибо за ответы!
Если я пытаюсь получить последний идентификатор между $ запросом и $ q, вывод будет равен 0. Если я использую команду:
if ($mysqli->query($query) === TRUE) {
$last_id = $mysqli->insert_id;
echo $last_id;
} else {
echo "Error: " . $query . "<br>" . $mysqli->error;
}
Я получил правильный идентификатор. Но как я могу использовать эту переменную для нового $ q? Похоже, что функция завершается после выполнения if.
Спасибо! :)