假设我是通过php代码在MySql中的一个表中插入一行,而我的表有一个ID没有给出,但它是auto_increment - 我如何检索刚刚插入的行的ID? 我在php中的查询看起来像这样:
$query = "insert into " . $this->tabel . " values (false,";
在此之后,我使用在函数中作为参数给出的值填充查询。 但是,我需要使用当前ID更新我的php类的内部变量。我怎样才能获得它?
谢谢
public function insert ($keyValueSet) {
$query = "insert into " . $this->tabel . " values (false,";
$connection = new mysqli(ADDRESS, USERNAME, PASSWORD, DB);
$cols = $this->getTableDesc();
// $query construction ......
$result = $connection->query($query);
echo "ID: " . mysql_insert_id ();
if ($result != 1)
echo "Exception";
$connection->close();
}
增量字段是第一个字段(我说:values(false)和MySql会自动增加此字段,正如我在数据库中看到的那样。
答案 0 :(得分:2)
mysql_insert_id()
你能展示你用来插入的代码吗? PHP doc说如果前一个查询没有返回自动增量值,则返回0。这可能发生在两种情况下:
INSERT
答案 1 :(得分:2)
默认为mysql_connect()
$id = mysql_insert_id();
对于程序性MySQLi,例如mysqli_connect()
$id = mysqli_insert_id();
对于面向对象的MySQLi,例如$db = new mysqli()
$id = $db->insertid; // replace $db with your DB variable name
答案 2 :(得分:1)
mysql_insert_id
通常但如果您使用PDO,则PDO::lastInsertId