簡體   English   中英

獲取mysql中的最后一條記錄

[英]Get last record in mysql

使用此php代碼:

try{
    $dbh = new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
    // INSERT CLEAN DATA INTO TABLE…
    $sth = $dbh->prepare("
    INSERT INTO Fan(fanNm,fanEmail,fanPass,fanDynamSalt)
    VALUES('$userName','$userEmailAddress','$userPassword','$dynamSalt')"
    );
    $sth->execute();
    ////////////////////////////////////////////////////////////////////
    ## Set Session Var for this PK ID in Fan table that is being created ##
    ////////////////////////////////////////////////////////////////////
    $_SESSION['newUserSessID'] = mysql_insert_id();
    echo "<strong style='color:#fff;'>".$_SESSION['newUserSessID']."</strong>";
} //try

catch(PDOException $e){
        echo "Oops, We're experiencing an error.";
        file_put_contents('/PDODBConnectionErrors.txt', $e->getMessage(), FILE_APPEND);  
} //catch

它將FINE插入數據庫,但是我正在使用echo "<strong style='color:#fff;'>".$_SESSION['newUserSessID']."</strong>"; 回顯該值,它總是返回零。

即使我跑:

SELECT LAST_INSERT_ID( ) 
FROM Fan
LIMIT 0 , 30

它給我輸出像

0
0

(因為數據庫表中有兩行)

任何人?

您不應該使用mysql_insert_id ,因為它不是PDO的一部分(在這種情況下,PDO就是與數據庫交互的對象)。

而是使用PDO::lastInsertId()

$_SESSION['newUserSessID'] = $dbh->lastInsertId();

更多信息: http : //www.php.net/manual/zh/pdo.lastinsertid.php

您正在將PDO與通用MySQL函數混合使用。 問題是mysql_last_insert沒有資源,因此對於false返回0。 不要將PDO與一般的MySQL函數混合使用。

要獲取PDO中的最后一個插入ID,請執行以下操作: $dbh->lastInsertId()

http://php.net/manual/zh/pdo.lastinsertid.php

暫無
暫無

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

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