我正在使用 PHP 和 SQL 語言填充 MySQL 數(shù)據(jù)庫。我正在填充的表稱為項目。將記錄添加到項目后,我想發(fā)送一封包含 project_id 和 project_title 的電子郵件。因此,在填充項目表后,我需要知道 project_id。命令: $sql = "SELECT LAST_INSERT_ID()"; 正在返回一個數(shù)組。我已經(jīng)嘗試了幾次對數(shù)組中的內(nèi)容的猜測,但沒有任何運氣。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,但命令返回一個數(shù)組
2 回答

臨摹微笑
TA貢獻1982條經(jīng)驗 獲得超2個贊
PDOStatement::fetch()
總是返回一個數(shù)組,它是結(jié)果集的一行。該數(shù)組是有序數(shù)組或按列名索引的散列數(shù)組。
保證您的查詢具有一列和一行并不重要。它仍然是一個結(jié)果集,為其fetch()
返回一個數(shù)組。它返回的數(shù)組將有一個條目,對應(yīng)于查詢的單列。
如果您只想返回一列作為標量,請嘗試PDOStatement::fetchColumn()。
有關(guān)說明和代碼示例,請參閱文檔。

繁星點點滴滴
TA貢獻1803條經(jīng)驗 獲得超3個贊
您可以從 pdo 對象本身獲取最后一個插入 ID。https://www.php.net/manual/en/pdo.lastinsertid.php
- 2 回答
- 0 關(guān)注
- 223 瀏覽
添加回答
舉報
0/150
提交
取消