Я пытаюсь получить последний вставленный идентификатор нескольких вставленных строк.Как выбрать последний вставленный идентификатор на конкатенированные значения
record_id является автоматическое приращение
$sql = "INSERT INTO records (record_id, user_id, status, x) values ";
$varray = array();
$rid = $row['record_id'];
$uid = $row['user_name'];
$status = $row['status'];
$x = $row['x'];
$varray[] = "('$rid', '$uid', '$status', '$x')";
$sql .= implode(',', $varray);
mysql_query($sql);
$sql2 = "INSERT INTO status_logs (id, record_id, status_id, date, timestamp, notes, user_id, x) VALUES";
$varray2[] = "(' ', mysql_insert_id(), '$status', '$uid', '$x')";
$sql2 .= implode(',', $varray2);
mysql_query($sql2);
Это результат:
INSERT INTO records (record_id, user_id, notes, x) values ('', '1237615', 'this is a note', 'active')
INSERT INTO status_logs (log_id, record_id, status_id, date, timestamp, notes, user_id, x) VALUES('', INSERT INTO records (record_id, user_id, notes, x) values ('', '1237615', 'this is a note', 'active')
INSERT INTO status_logs (log_id, record_id, status_id, date, timestamp, notes, user_id, x) VALUES('', mysql_insert_id(), '1', '2013:05:16 00:00:01', '', this is a note'', '1237615', 'active'), '1', '2013:05:16 00:00:01', '', this is a note'', '1237615', 'active')
Там нет значения для mysql_insert_id()
.
Возможно, вы захотите немного узнать о PDO, который является более безопасным способом вставки данных в ваши SQL-запросы. – Duniyadnd
вы всегда можете сделать запрос сразу после этого, выбрав «MAX (id)», это не было бы доказательством дурака (возможно, двумя представлениями в одно и то же время), но, по крайней мере, было бы началом, в качестве альтернативы принять накладные расходы на выполнение отдельных запросов. –