PrestaShop,在插入数据库时​​获取 ID

Mat*_*nna 2 php mysql database prestashop prestashop-1.6

我正在为 PrestaShop 1.6 创建一个脚本,用于将数据插入到表中。我的桌子是这样制作的:

  • id:int 自动增量
  • 描述:字符串

当我输入描述时,我会取回 ID 值。

不能使用该标准,因为它被 PrestaShop 阻止。

我发现这是一种情况:

$sql = "INSERT INTO `"._DB_PREFIX_."table`(`desc`) VALUES ('".$this->desc."')";
$restpo = Db::getInstance()->execute($sql);
var_dump($restpo);
Run Code Online (Sandbox Code Playgroud)

但我的答案只有一个布尔值。你能提出一些建议吗?

sad*_*lue 5

您可以使用:

$id = (int)Db::getInstance()->Insert_ID();
Run Code Online (Sandbox Code Playgroud)

例如,在 Cart 类中:

$last_id = (int)Db::getInstance()->Insert_ID();
Run Code Online (Sandbox Code Playgroud)

我还推荐使用函数 insert,例如在 Carrier 类中:

$values = array();
foreach ($shops as $id_shop) {
      $values[] = array(
           'id_carrier' => (int)$this->id,
           'id_tax_rules_group' => (int)$id_tax_rules_group,
           'id_shop' => (int)$id_shop,
       );
}
$res = Db::getInstance()->insert('carrier_tax_rules_group_shop', $values);
Run Code Online (Sandbox Code Playgroud)

然后使用 Insert_ID 获取最后一个。