-1

lastInsertIDが0を返すのに問題があります。別のページで機能しているため、ここで問題が発生しています。

以下はtry/catchブロックにあります。

$idCount = "42";
/** set the database **/
$db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
/** set the error reporting attribute **/
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);            
$stmt = $db->prepare("SELECT image1 FROM items WHERE `id` = :id");    
/** bind the parameters **/
$stmt->bindParam(':id', $idCount, PDO::PARAM_STR);   
$stmt->execute();                 
$idCount = $db->lastInsertId();
echo $idCount;
4

2 に答える 2

2

lastInsertId()実際に挿入を行った場合にのみ、最後の挿入IDが返されます。あなたはただやっていselectます。

于 2013-02-15T03:16:02.347 に答える
2

関数名->lastInsertId()は、SELECTステートメントが通常最後の挿入IDを設定しないというヒントを与える必要があります。

auto_increment通常、列を持つテーブルのINSERTステートメントのみがその動作を示します。

LAST_INSERT_ID(expr)ただし、使用される場合など、例外があります。

SELECT LAST_INSERT_ID(`id`) AS `id`, image1 FROM items WHERE `id` = :id
于 2013-02-15T03:17:57.707 に答える