Ответ 1
Вы получаете lastinsertid из объекта PDO, а не объект результатов.
Попробуйте $db->lastInsertId()
изменить ниже.
Ваш класс базы данных инкапсулирует ваш объект handleDB/PDO. Поскольку переменная handleDB является частной, вы не можете получить доступ к ней вне вашего класса. Вам нужно будет либо сделать это общедоступным,
class database
{
public $handleDB;
public function __construct()
{
$host = 'removed';
$user = 'removed';
$database = 'removed';
$password = 'removed';
try
{
$this->handleDB = new PDO('mysql:host='.$host.';dbname='.$database, $user, $password);
}
catch (PDOException $e)
{
print_r($e);
}
$this->handleDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
}
Теперь вы можете позвонить $db->handleDB->lastInsertId();
Или вы можете открыть handleDB->lastInsertId()
как функцию, например:
class database
{
private $handleDB;
public function __construct()
{
$host = 'remove';
$user = 'removed';
$database = 'removed';
$password = 'removed';
try
{
$this->handleDB = new PDO('mysql:host='.$host.';dbname='.$database, $user, $password);
}
catch (PDOException $e)
{
print_r($e);
}
$this->handleDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
public function lastInsertId(){
return $this->handleDB->lastInsertId();
}
}
Вы вызывали бы с помощью $db->lastInsertId();