私はこの質問が何度も答えられていることを知っています。私はここからいくつかのソリューションを試しましたが、何も機能しませんでした。私はPHPフレームワークを使用していません。php-get last insert id
私は挿入操作が行われており、挿入された行の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
他の方法がありますか?
(この$番号= LAST_INSERT_IDを試してください)。あなたの挿入クエリの後 –
多分興味深い? http://php.net/manual/en/mysqli.insert-id.phpつまり、 '$ lastId = mysqli_insert_id($ connection);' –
本当にあなたの試行を共有していないので、間違っているか、なぜ '' SELECT LAST_INSERT_ID()FROM tablename'を手動で実行しなければならないと思ったのですか?私たちは推測することができ、私はあなたが挿入直後と同じ接続でIDを取得しないと推測します。 –