sql LAST_INSERT_ID()和PHP INSERT_ID都返回0
我在谷歌上搜索了很多关于这个问题的信息,但什么也没找到。人们只是在最后一个插入id上复制MySQL文档,其他什么都没有 我有一个关于最后一个插入id的问题,因为对于这两种情况(php和sql),它都返回0 是:我设置了一个具有自动增量值的主字段和唯一字段 是的,我以前做过一些插入 否:使用INSERT和SELECT LAST进行双重查询。。。不起作用 我已经创建了一个用于维护连接和查询的类Db:sql LAST_INSERT_ID()和PHP INSERT_ID都返回0,php,sql,mysqli,last-insert-id,insert-id,Php,Sql,Mysqli,Last Insert Id,Insert Id,我在谷歌上搜索了很多关于这个问题的信息,但什么也没找到。人们只是在最后一个插入id上复制MySQL文档,其他什么都没有 我有一个关于最后一个插入id的问题,因为对于这两种情况(php和sql),它都返回0 是:我设置了一个具有自动增量值的主字段和唯一字段 是的,我以前做过一些插入 否:使用INSERT和SELECT LAST进行双重查询。。。不起作用 我已经创建了一个用于维护连接和查询的类Db: class Db { private function connect() { $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
而且它不起作用。你所需要的只是常识 你们所描述的问题是一个不大可能的问题。所以-您必须再次检查。
现在已经有数百个问题了,其中开场白100%都是正确的。一开始。
在每一个数据库中,结果都是一个愚蠢的错误,比如插入一个数据库,然后从另一个数据库中进行选择 正如我所说。是的,你没有关闭你的连接。出于某种原因,您只需为每个数据库调用打开一个全新的。难怪全新的干净连接返回0 与其编写自己的类,不如使用现成的类,如
这样更安全、更方便。它返回insert idNO:在获取最后一个insert\u id之前,我不会关闭连接;我在另一个注释的结尾处关闭它。“说话很便宜,让我看看代码!”。我们只有你的文字和粗略的代码草图,没有具体的、可复制的代码,包括表定义和输出,这个问题特别没有意义。只是因为当你详细阐述这样一个代码时,你会发现你的错误。现在呢?上面的代码返回0当您显示您的DB类时,我不太担心语句$last\u id=$this->connect()->insert\u id;不,你不明白。完整的代码,从表格创建到id输出。谢谢,粗体的注释让我意识到了我的错误。谢谢!