gpt4 book ai didi

mysql - 有没有更好的方法来使用 mysql_insert_id()

转载 作者:行者123 更新时间:2023-11-29 08:18:33 25 4
gpt4 key购买 nike

我用 PHP 编写了以下 sql 语句。

$sql='INSERT INTO pictures (`picture`) VALUES ("'.$imgs[$i]['name'].'",)';
$db->query($sql);
$imgs[$i]['sqlID'] = $this->id=mysql_insert_id();
$imgs[$i]['newImgName'] = $imgs[$i]['sqlID'].'_'.$imgs[$i]['name'];
$sql='UPDATE pictures SET picture="'.$imgs[$i]['newImgName'].'" WHERE id='.$imgs[$i]['sqlID'];
$db->query($sql);

现在将图像名称写入数据库表图片。完成之后,我得到了 mysql_insert_id(),然后我将用带有下划线的名称前面的最后一个 id 来更新图片名称。

我这样做是为了确保所有图片名称都不能相同。因为所有这些图片都保存在同一个文件夹中。有没有其他方法可以在我第一次设置 sql 查询时保存该 ID?或者还有其他更好的方法来达到这个结果吗?

谢谢大家的建议

最佳答案

使用 native auto_increment - 没有其他方法。您需要执行您所描述的 3 个步骤。

正如 Dan Bracuk 提到的,您可以创建一个存储过程来执行 3 个查询(执行后您仍然可以获得插入 id)。

其他可能的选项是:

  • 不将 ID 存储在文件名中 - 如果需要,您可以稍后将其连接起来(选择时)
  • 使用临时自动增量而不是 native 增量 - 在这种情况下我不建议这样做,但这是可能的
  • 使用某种 UUID 而不是自动递增
  • 使用文件系统生成唯一的文件名(Marcell Fülöp 的回答)

关于mysql - 有没有更好的方法来使用 mysql_insert_id(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com