我正在使用 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()。
有关说明和代码示例,请参阅文档。
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您可以从 pdo 对象本身获取最后一个插入 ID。https://www.php.net/manual/en/pdo.lastinsertid.php
- 2 回答
- 0 关注
- 299 浏览
添加回答
举报
0/150
提交
取消
