为了账号安全,请及时绑定邮箱和手机立即绑定

读取 SELECT LAST_INSERT_ID(),这似乎产生了一个数组

读取 SELECT LAST_INSERT_ID(),这似乎产生了一个数组

PHP
侃侃尔雅 2021-12-24 09:33:37
我正在使用 PHP 和 SQL 语言填充 MySQL 数据库。我正在填充的表称为项目。将记录添加到项目后,我想发送一封包含 project_id 和 project_title 的电子邮件。因此,在填充项目表后,我需要知道 project_id。命令: $sql = "SELECT LAST_INSERT_ID()"; 正在返回一个数组。我已经尝试了几次对数组中的内容的猜测,但没有任何运气。public function add_project($project_title, $project_description,         $skill_cat_id, $name_id) {    $dbConn = new DatabaseConn();    $this->name_id = $name_id;    $this->skill_cat_id = $skill_cat_id;    if($this->check_for_duplicates() != null) {        $message = "This Project already exist!";        echo "<script type='text/javascript'>alert('$message');</script>";    } else {        $sql = "INSERT INTO project "                . "(project_id, project_title, project_start_date, "                . "project_description, skill_cat_id, volunteer_id, response_id, name_id) "                . "VALUES (DEFAULT, $project_title, DEFAULT, "                . "$project_description, $skill_cat_id, DEFAULT, DEFAULT, $name_id)";        try {            $dbConn->exec($sql);        }        catch(PDOException $e) {            $message = $sql . "<br />" . $e->getMessage();            echo "<script type='text/javascript'>alert('$message');</script>";        }        $dbConn2 = new DatabaseConn();        $sql = "SELECT LAST_INSERT_ID()";        try {            $statement = $dbConn2->prepare($sql);            $statement->execute();            $result = $statement->fetch();            $statement->closeCursor();        }        catch(PDOException $e) {            $message = $sql . "<br />" . $e->getMessage();            echo "<script type='text/javascript'>alert('$message');</script>";        }        return $result;    }}我期待项目表的 project_id,但命令返回一个数组
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

PDOStatement::fetch()总是返回一个数组,它是结果集的一行。该数组是有序数组或按列名索引的散列数组。

保证您的查询具有一列和一行并不重要。它仍然是一个结果集,为其fetch()返回一个数组。它返回的数组将有一个条目,对应于查询的单列。

如果您只想返回一列作为标量,请尝试PDOStatement::fetchColumn()

有关说明和代码示例,请参阅文档。


查看完整回答
反对 回复 2021-12-24
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以从 pdo 对象本身获取最后一个插入 ID。https://www.php.net/manual/en/pdo.lastinsertid.php


查看完整回答
反对 回复 2021-12-24
  • 2 回答
  • 0 关注
  • 299 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号