php - mysql:将默认值存储为变量

标签 php mysql sql

我想知道如何存储主键的值,按“DEFAULT”自动递增,以便我可以将它作为值插入到另一个表行中。

到目前为止我有:

$sql = "INSERT INTO sales (
            sale_id,
            sale_amt,
            sale_date) 
        VALUES (
            DEFAULT,  # <--- how to store the resulting value of this?
            '$amt',
            '$date'
            )";

我需要存储由“DEFAULT”创建的特定值,以便我可以将它插入到另一个表的行中。我如何使用 PHP 或 MySQL 执行此操作?

最佳答案

你不知道。在执行第一次插入后,您使用 last_insert_id() 检索它。

INSERT INTO foo (bar) VALUES (baz)
SELECT @id := last_insert_id();
INSERT INTO other (id, parent) VALUES (null, @id)
INSERT INTO yetanother (id, parent) VALUES (null, @id)

请注意,last_insert_id() 并不智能,它会返回您所做的LAST 插入的 ID。如果您执行两次插入,然后尝试获取 ID,您将获得第二个(最后一个)插入的 ID。

关于php - mysql:将默认值存储为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23897368/

相关文章:

php - 浏览忽略 max_matches 的 Sphinx 结果?

php - 使用 PHP 制作 'facebook' 样式提要

类似mysql的查询拉取结果很慢

sql - 使用 gorm 插入数据时,检查不存在相同

php - 结合静态盐和随机盐

php - 如何(真正)对适配器进行单元测试

mysql - 选择所有行,直到日期差异从底部开始为 4

sql - 优化选择查询

php - array_unique 删除跨度中的重复值

php - 如何将组合框的第一个条目设置为空? PHP/MySQL