【发布时间】:2015-06-24 23:00:36
【问题描述】:
我正在尝试通过 php 使用 pdo 获取插入到 mssql 数据库中的最后一条记录的 id。我已经阅读了很多帖子,但仍然无法让这个简单的例子起作用,所以我转向你。以前的许多答案只给出了 SQL 代码,但没有解释如何将其合并到 PHP 中。老实说,我不认为这是重复的。基本插入代码为:
$CustID = "a123";
$Name="James"
$stmt = "
INSERT INTO OrderHeader (
CustID,
Name
) VALUES (
:CustID,
:Name
)";
$stmt = $db->prepare( stmt );
$stmt->bindParam(':CustID', $CustID);
$stmt->bindParam(':Name', $Name);
$stmt->execute();
我必须使用 PDO 查询 MSSQL 数据库。不幸的是,驱动程序不支持该数据库的 lastinsertid() 函数。我已经阅读了一些解决方案,但需要更多帮助才能让它们发挥作用。
这里的一篇文章建议使用 SELECT SCOPE_IDENTITY(),但没有给出如何将其合并到上面的基本插入代码中的示例。另一位用户建议:
$temp = $stmt->fetch(PDO::FETCH_ASSOC);
但是,这并没有产生任何结果。
【问题讨论】:
-
您可以在此之后进行查询 ->
$stmt->query('SELECT MAX(id) as id FROM OrderHeader')或$stmt->query('SELECT id FROM OrderHeader ORDER BY id DESC')。然后$temp = $stmt->fetch(PDO::FETCH_ASSOC); echo $temp['id']; //last inserted id
标签: php sql sql-server database pdo