簡體   English   中英

PHP,PDO和MYSQL:lastInsertId()返回NULL

[英]PHP, PDO & MYSQL : lastInsertId() returns NULL

我在基於PDO的MySQL上還很陌生,並且遇到了問題。

這是我正在執行的方法:

public function insert( $table, $data )
{
  // utility functions to auto-format the statements
  $keys = $this->getKeys($data);
  $placeholders = $this->getPlaceholders($data);

  $q = "INSERT INTO $table ($keys) VALUES ($placeholders)";

  // this simply returns a new PDO object
  $dbh = $this->createSession();

  $stmt = $dbh->prepare($q);
  $stmt->execute( array_values($data) );

  return $dbh->lastInsertId();
}

之后,我運行我的方法並將返回的值存儲在變量中:

$new_user_id = $U->insert( $data );

var_dump($new_user_id);

我得到

NULL

注意 ,查詢實際上已執行,並且我的數據已正確插入表中; 那邊沒問題。 似乎我無法索取最后一個插入ID。

謝謝你的時間。

不確定是否有任何特定於PDO的問題,但是默認情況下,如果數據庫中有一個auto_increment整數字段(通常但不一定是主鍵),則MySQL僅返回插入ID。 如果您的表不包含此內容,則$ dbh-> lastInsertId()不會返回任何內容

我再次檢查了代碼,發現由於中間方法未將值正確地傳遞給頂層方法而未返回我的值。

從源頭檢查值顯示沒有問題。

無論如何,感謝您的答復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM