【问题标题】:Last inserted and updated row in mysql using NotORM使用 NotORM 在 mysql 中最后插入和更新的行
【发布时间】:2016-02-25 11:54:35
【问题描述】:

我需要使用 NotORM 插入最后一行

$res=array("firstname"=>"fname","lastname"=>"lname");
$result = $db->Product()->insert($res);
$row=$db->product()->where('ProductId',$result['id'])->fetch();
echo json_encode($row);

输出:假

数据库列是 id(auto_increment)、firstname、lastname。而且我还需要最后更新的行。 上面的代码不起作用。请帮忙

【问题讨论】:

  • 欢迎 - 请查看如何提问 - stackoverflow.com/help/how-to-ask。发帖前先校对! - 检查您的第一行拼写错误和标题中的拼写错误。 “拼写、语法和标点符号很重要!记住,这是别人会看到的问题的第一部分 - 你想给人留下好印象。”
  • ´WHERE ProductId = ( SELECT MAX(ProductId) FROM Table)´ 应该可以通过 DESC 订购其他方式

标签: php mysql json notorm


【解决方案1】:

要获得插入的最后一个 id,您需要这样做

$res=array("firstname"=>"fname","lastname"=>"lname");
$result = $db->Product()->insert($res);
echo $result["id"];

警告与数据库中键的名称无关,您使用 $result["id"] 来获取值。

就像你获得最后插入的 id 一样

据我在您的示例中看到的,您可以使用它。我不知道这是否会影响,但在您的代码中第二次输入“product()”而不是“Product()”时,您还应该检查“ProductId”是否输入正确

我认为的另一件事是,如果返回 false 是因为 json_encode 返回 false 与说 notorm 返回 false 不同,请在编码之前先尝试打印 $row。

问候

【讨论】:

    【解决方案2】:

    只需使用以下 mysql 查询:

    select last_insert_id();
    

    它会返回最后一个inserted_id。将其放入带有插入查询的事务中以使其安全。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多