Почему PDO :: lastInsertId возвращает 0?

Это мой код.

// insert reward into wallet $sql = " INSERT INTO `wallet` (`uid`, `created_at`, `amount`, `type`, `payment_id`) VALUES (:uid, CURRENT_TIMESTAMP, :amount, 'payment', :payment_id); "; $sth = self::link()->prepare($sql); // primary key makes sure payment does not get double rewarded $sth->execute( array( ':uid' => $referer, ':amount' => $reward, ':payment_id' => $payment_data['payment_id'], ) ); var_dump(self::link()->errorInfo()); self::log("issuing subscription",self::LOG_LEVEL_DEBUG); // extend referers subscription $tid = self::link()->lastInsertId(); var_dump(self::link()->errorInfo()); self::log("using $tid as id for wallet transfer",self::LOG_LEVEL_DEBUG); 

Мой журнал говорит:

 [2011-07-02 20:31:44] using 0 as id for wallet transfer 

Однако запрос вставки успешно, запись базы данных создается, и оба вывода errorInfo не дают ошибок.