Я довольно новичок в мире SQL, так что извините за мое невежество в этом.INSERT в MYSQL, а затем перед закрытием соединения выберите идентификатор вставки, а затем добавьте этот идентификатор в 3 другие таблицы.
У меня есть форма на странице администратора, которая добавляет игрока в базу данных команды. Когда форма представляется то, что мне нужно иметь случиться:
Игрока получает вставляются в таблицу игроков (player_id является первичным ключом и используют на следующей стадии).
Оператор select запускается, чтобы получить player_id.
- Затем вставляет, что в 2-х других таблиц:
- team_players и карт.
Ниже лучшее представление о том, что я пробовал:
if(isset($_POST['submit'])){
$first_name = mysqli_real_escape_string($con2, $_POST['first_name']);
$last_name = mysqli_real_escape_string($con2, $_POST['last_name']);
$email = mysqli_real_escape_string($con2, $_POST['email']);
$validation_code = md5($email + microtime());
$sql0 ="INSERT INTO players
(first_name, last_name, email, validation_code)
VALUES ('$first_name', '$last_name','$email', '$validation_code')";
$sql01 = "SELECT player_id FROM players WHERE email='$email'";
$result01 = $con2->query($sql01);
if ($result01->num_rows > 0) {
$row01 = $result01->fetch_assoc();
$playerID = $row01['player_id'];
echo $playerID; //In for debugging. Sometimes it works sometimes it doesn't
$sql02 = "INSERT INTO team_players, cards (player_id, team_id)
VALUES('$playerID', '$id')";
Спасибо за любую помощь по этому вопросу.
** ПРЕДУПРЕЖДЕНИЕ ** При использовании 'mysqli' вы должны использовать [параметризованные запросы] (http://php.net/ manual/en/mysqli.quickstart.prepared-statements.php) и ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос , ** НЕ ПРИНИМАЙТЕ ** использовать ручное экранирование и интерполяцию строк или конкатенацию, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/), если вы когда-нибудь забудете что-то избежать. – tadman
не делайте 'select player_id'. вы должны использовать 'last_insert_id()' для безопасного получения идентификатора вашей новой записи. И точно КАК этот код не работает? –
@tadman благодарит вас за ответ. Я обязательно обновлю свой код. – MBRD