【发布时间】:2012-03-14 01:51:43
【问题描述】:
使用这个 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() 检索前一个查询为 AUTO_INCREMENT 列生成的 ID。您的任何列都是 AUTO_INCREMENTS 吗? Fan中的其他字段是什么?
-
HTML 标记需要双引号 (
") 而不是您在echo语句中使用的单引号 (')。 -
@AmitBhargava - 是的,PK 是自动递增的。
-
@Jon - 我不认为这是问题所在。
-
@user975947 我从来没有说过,这就是为什么它是评论,而不是答案。但 HTML 确实需要双引号。
标签: php mysql lastinsertid