【问题标题】:Getting last inserted row in access using php使用php获取最后插入的行
【发布时间】:2016-10-18 10:50:13
【问题描述】:

我正在通过 PHP 插入 Access 数据库,但我正在努力获取最后插入行的 ID。我以前有这个工作,但我们的服务器坏了,我不得不重新编写它,但它没有返回 - 我确定我是这样做的:

$idquery = "select @@IDENTITY from [Businesses]";

try{
    $rs = $conn->execute($query);

    $idReturned = $conn->execute($idquery);

    echo json_encode($idReturned); 
} catch(com_exception $e){
    echo($e);
}

插入成功,但json_encode($idReturned); 为空白,知道为什么吗?

【问题讨论】:

  • 你没有显示$idquery的值
  • $idquery = "select @@IDENTITY from [Businesses]"$query 的值是未知的。
  • select @@IDENTITY 似乎不需要表名,但我不确定删除表名是否能解决问题。
  • @ChrisLear $query 的值无关紧要,它可以很好地插入数据库中,它只是我试图获取的 id。
  • @ChrisLear 谢谢,但删除表名没有解决:(

标签: php ms-access


【解决方案1】:

您在使用 PDO 吗?

如果是,您可以执行以下操作:

$id = $con->lastInsertId();

【讨论】:

  • 我得到异常 'com_exception' 和消息 '来源:ADODB.Connection 描述:参数类型错误,超出可接受范围,或相互冲突
【解决方案2】:
<?php
// Assume $dbh connection handle is already established

$sql = "INSERT INTO business (name) VALUES ('BUS')";

$sth = $dbh->prepare($sql);

$sth->execute();

$lastId = $dbh->lastInsertId(); //This is where you get last inserted ID

?>

取决于数据库提供者,可能存在需要为该表设置“主键”的情况

【讨论】:

  • 我收到异常 'com_exception' 和消息 '来源:ADODB.Connection 描述:参数类型错误、超出可接受范围或相互冲突
猜你喜欢
  • 2016-11-25
  • 2015-05-21
  • 1970-01-01
  • 2011-09-23
  • 2019-05-10
  • 2019-10-28
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
相关资源
最近更新 更多