Приветствую.
На php.net есть такое:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* проверка соединения */
if (mysqli_connect_errno()) {
printf("Соединение не установлено: %s\n", mysqli_connect_error());
exit();
}
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
printf ("ID новой записи: %d.\n", $mysqli->insert_id);
У меня создан класс DB который делает все операции с БД.
Использую его так:
$this->DB = new DB();
И получается что я немогу сделать так :
echo $this->DB->insert_id;
Мое решение:
В созданном классе DB создал доп. поле
$this->last_insert_id = $this->mysqli->insert_id;
Данный код срабатывает после Inserta
теперь я могу получать id последней добавленной записи через поле
$this->DB->last_insert_id
Но дело в том что недавно узнал о излишней памяти которая выделяется под поля. Рекомендовалось ограничить их использование. Но и конечно само решение непомешает. По сути я не хочу манипулировать созданным соединением, но и писать методы для получения того что стандартно тоже.
Возможно имеет смысл както возвращать соединение как обьект?
Дело в том, что используя стандартные названия методов лучше так как не нужно изучать что за ним скрывается.