私はこの問題についてグーグルをよく検索してきましたが、実際には何も見つかりませんでした。人々は、last_insert_id に関する MySQL ドキュメントをコピーし続けるだけで、他には何もありません。
両方の状況 (php と sql) で 0 が返されるため、last_insert_id に関する問題があります。
はい: PRIMARY & UNIQUE フィールドに AUTO_INCREMENT 値を設定しました はい: 前に挿入を行いました いいえ: INSERT AND SELECT LAST で二重クエリを作成します... 機能しません。
接続とクエリを維持するためのクラス Db を作成しました。
class Db
{
private function connect()
{
$db = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name, $this->db_port);
if(mysqli_errno($db))
{
file_put_contents(date('Y-m-d').'mysql_error.txt',mysqli_error($db),FILE_APPEND | LOCK_EX);
echo "Connection error";
exit();
}
else
{
return $db;
}
}
public function insert($i_what, $i_columns, $i_values, $i_duplicate='') {
$insert = $this->connect()->query("INSERT INTO ".$i_what.$i_columns.$i_values.$i_duplicate);
$last_id = $this->connect()->insert_id;
$this->connect()->close();
return $last_id; }
}
id int(11) AUTO_INCREMENT PRIMARY UNIQUE
name varchar(32) utf8_general_ci
firstname varchar(64) utf8_general_ci
lastname varchar(64) utf8_general_ci
そして、それは機能しません。