- Вставляю данные в таблицу под названием «реестр». Первый столбец (id_roster) - это идентификатор, использующий автоинкремент mysql.
- Я бегу ОТБОРНОЕ, чтобы найти id_roster
Я использую эту id_roster, чтобы вставить его в таблицу «roster_par_membre» вместе с другими даннымиВозврат идентификатора (автоинкремент) вставленной строки
if ($insert_stmt = $mysqli->prepare("INSERT INTO `roster`(`nom_roster`, `description_roster`, `id_organisation`, `created_by`, `creation_date`,`modified_by`) VALUES (?, ?, ?, ?, ?, ?)")) { $insert_stmt->bind_param('ssiisi', $roster_name, $description_roster, $organisation_id, $user_id, $creation_date, $user_id); if (!$insert_stmt->execute()) { $reponse = 'Sorry, a database error occurred; please try later'; } else { // if INSERT OK -> create a new line in roster_membre table //1. get the roster_id $sql = "SELECT r.id_roster FROM roster r WHERE r.nom_roster = ? LIMIT 1"; $stmt = $mysqli->prepare($sql); if ($stmt) { $stmt->bind_param('s', $roster_name); $stmt->execute(); // Execute the prepared query. $stmt->store_result(); $stmt->bind_result($id_roster); $stmt->fetch(); $level = 1; //2. create a line with the roster_id and insert the membre as level 1 $insert_stmt = $mysqli->prepare("INSERT INTO `roster_par_membre`(`id_membre`, `id_roster`, `level`, `modified_by`) VALUES (?,?,?,?)"); $insert_stmt->bind_param('iiii', $user_id, $id_roster, $level, $user_id); $insert_stmt->execute(); $reponse = 'success'; }
Пока код работает, но это не очень приятно. Есть ли способ, когда мы создаем новую строку в таблице, чтобы напрямую возвращать значение (id с автоматическим приращением), которое должно использоваться в запросе sql (чтобы вставить данные во вторую таблицу)? или, возможно, объединить два запроса (два INSERT) в одном статусе?
короткое редактирование: это ответ AJAX $ возвращаемое значению (JSON)
Ищете LAST_INSERT_ID ? –
как насчет использования mysqli-> query (insert), mysqli-> insert_id? – albanx
@vp_arth да что именно это last_insert_id; Я проверю. Любая идея о том, как я могу изменить свой код соответственно? –