Mysqli last insert id - программирование

Mysqli last insert id

Я хотел бы связать изображение с именем, фамилией... как я могу получить последнюю строку и использовать ее для вставки в другую таблицу? Я попробовал $image = $mysqli->insert_id;, затем привязку, но это не сработало. Может кто-нибудь помочь мне?

 $image = $mysqli->insert_id;//this should come from table2
 $stmt = $mysqli->prepare("
  insert into table1 (username, firstname, lastname, image) 
  select ?,?,?,image from table2 t2 where username = ? and  t2.id = ? 
   ");
 $stmt->bind_param('sssss', $username, $fname, $lname, $username, $image);
 $stmt->execute();
4b9b3361

Ответ 1

mysqli::$insert_id - mysqli_insert_id - Возвращает автоматически сгенерированный идентификатор, использованный в последнем запросе, Пример:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();

Выход

Новая запись имеет идентификатор 1.

Ссылка

Ответ 2

Прежде всего вам нужно создать поле auto_increment в вашем ID

Затем вы можете использовать $last_id = mysqli_insert_id($conn);

Ответ 3

после того, как я получу последнюю строку из таблицы2, я хотел бы вставить ее в таблицу1. Это все, что мне нужно

Продолжить:

  • вставить в таблицу 1 с простым регулярным запросом на вставку
  • получить последний идентификатор вставки
  • вставить в таблицу 2 с простым регулярным запросом на вставку

Так же просто, как