[英]PDO::last Insert Id always return 0 use with MYSQL and prepare statement
我無法從pdo連接中獲取最后一個插入ID,它始終返回0。我沒有解決辦法,請幫助我。 我的功能getConnection();
function getConnection(){
$servername="localhost";
$username="mmjadmin";
$password="gfam";
try{
$conn = new PDO("mysql:host=$servername;dbname=mmjdb",$username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
return $conn;
}catch(PDOException $e){
echo "Connect to database fail " . $e->getMessage();
}}
我調用此函數對其他函數進行插入數據
function insertUser($username,$password){
$sql = "INSERT INTO T_Users(
username,
password,
regist_date,
update_date)
VALUES(
:username,
:password,
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP)";
$stmt = getConnection()->prepare($sql);
$stmt->bindParam(':username',$username);
$stmt->bindParam(':password',$password);
$stmt->execute();
$userid = getConnection()->lastInsertId();
}
我無法獲取我插入的最后一個用戶ID,該用戶ID是自動增量,它始終返回0。
當您調用getConnection()
時,您已經創建了一個新的連接。 您應該存儲連接並重新使用它:
function insertUser($username,$password){
$conn = getConnection();
$sql = "INSERT INTO T_Users(
username,
password,
regist_date,
update_date)
VALUES(
:username,
:password,
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':username',$username);
$stmt->bindParam(':password',$password);
$stmt->execute();
$userid = $conn->lastInsertId();
return $userId; // if needed
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.