У меня есть следующий класс PHP, им с помощью этого подключения к БД и сделать новый экземпляр:Как получить последний id, вставленный в mysql, используя OOP PHP?
class db{
public $db_connection;
public function __construct(){
$this->db_connection = new mysqli("127.0.0.1","user","passwd","table");
$this->db_connection->set_charset("utf8");
if($this->db_connection->connect_errno) {
echo "Failed to connect to database: " . $db_connection->connect_error;
}
}
public function __destruct(){
return $this->db_connection->close();
}
}
Код им с помощью, чтобы добавить материал в базу данных:
$db = new db();
$success = $db->db_connection->query(
"INSERT INTO users(
name
)
VALUES(
'".$_POST["firstname"].'
)"
);
Получить идентификатор вставленный элемент aboue:
if($success){
$user_id = $db->db_connection->insert_id;
echo $user_id; // outputs 0
}
Я получаю значение 0 даже то у меня есть несколько записей в базе данных, есть другой способ обойти это? Идентификатор также имеет AUTO INCREMENT на столе
Примечание: Код прост, а не вся структура, но достаточно, чтобы объяснить реальный issiue.
В коде есть проблема с кавычками, существует ли это и в вашем реальном коде? Потому что это не похоже, что это сработает. – Erik
как примечание: использование $ POST, как прямо в вашем запросе, является односторонней поездкой на взлом SQL-инъекций. –
код проверен и работает, и ДА, это не весь код, который содержит простой пример, просто указывая на сам issiue. – sdfgg45