PrestaShop,在DB中插入时获取ID

时间:2017-03-29 12:52:01

标签: php mysql database prestashop prestashop-1.6

我正在为PrestaShop 1.6创建一个将数据插入表格的脚本。 我的表是这样制作的:

  • id:int AUTO INCREMENT
  • desc:string

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

On无法使用该标准,因为它被PrestaShop阻止。

我发现这种情况:

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

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

3 个答案:

答案 0 :(得分:3)

您可以使用:

$id = (int)Db::getInstance()->Insert_ID();

例如,在Cart类中:

$last_id = (int)Db::getInstance()->Insert_ID();

我还建议使用函数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);

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

答案 1 :(得分:1)

执行SQL后使用$id = Db::getInstance()->Insert_ID();

答案 2 :(得分:1)

PrestaShop的DB课程通过

提供last inserted id
Db::getInstance()->Insert_ID(); 

方法