我知道这个问题已经被回答了很多次。我尝试了这里的一些解决方案,但都没有起作用。我没有使用任何 PHP 框架。
我正在执行一个插入操作,并且我想要获取插入行的 ID。
这是我的代码:
$qry="INSERT INTO tablename(content) VALUES('".$content."')";
setData($qry);
setData() 是一个用户定义的函数,用于执行插入操作。
//for data submit
function setData($qry)
{
$obj=new DBCon();
$res=$obj->submitQuery($qry);
return $res;
}
//fetches result
function getData($qry)
{
$obj=new DBCon();
$res=$obj->selectQuery($qry);
return $res;
}
这是我为建立数据库连接所创建的类:
class DBCon
{
private function getConnection()
{
// hostname, username, password, database
$con=mysqli_connect("localhost","root","","dbname")OR die('Could not Connect the Database');
return $con;
}
public function closeCon()
{
mysqli_close($con);
}
public function submitQuery($qry)
{
$result=0;
$con=$this->getConnection();
$result=mysqli_query($con,$qry);
return $result;
}
public function selectQuery($qry)
{
$con=$this->getConnection();
$res=mysqli_query($con,$qry);
return $res;
}
}
为了获取最后插入的id,我编写了以下查询语句,但没有返回任何结果:
SELECT LAST_INSERT_ID() FROM tablename
有没有其他方法可以获得这个?
$lastId = mysqli_insert_id($connection);
。 - Ryan VincentSELECT LAST_INSERT_ID() FROM tablename
。我们只能猜测,我的猜测是你没有在插入后立即在同一连接中获取ID。 - Álvaro González