mysqli последний идентификатор вставки

Я хотел бы связать изображение с именем, фамилией … как я могу получить последнюю строку и использовать ее для вставки в другую таблицу? Я старался $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();

11

Решение

mysqli::$insert_idmysqli_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.

Ссылка

21

Другие решения

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

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

6

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

Продолжать:

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

Так просто

1
По вопросам рекламы [email protected]