我一直在寻找一些解决方案,但它们都没有工作,尝试了stackoverflow的所有主题,什么都没有。
这是我的连接脚本:
private function __construct() {
try {
$this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password'));
$this->_pdo->exec("SET NAMES utf8");
} catch(PDOException $e) {
die($e->getMessage());
}
}
这是我的查询方法:
public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
$x = 1;
if(count($params)) {
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()) {
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
return $this;
}
我不得不重做我的帐户激活系统并将激活码放到单独的表中,所以当新用户来登记时我需要抓住插入ID以放置在user_id
下的激活码表中。问题是我不知道如何更改我提供的脚本以便能够获取该ID。
我尝试了$this->_pdo->lastInsertId();
和$this->_db->lastInsertId();
在第一种情况下,我在第二种情况下一直得到null我没有在类中找到方法lastInsertId()
也许我把它放在错误的地方或做错了,帮助会很好,提前谢谢你;)
顺便说一句,我在mysql服务器下使用pdo
答案 0 :(得分:2)
if($this->_query->execute()) {
$id = $this->_pdo->lastInsertId();
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
}