Php SQL插入到自动增量列中
基本上,我有一个用于通用SQL语句的PHP类:Php SQL插入到自动增量列中,php,sql,Php,Sql,基本上,我有一个用于通用SQL语句的PHP类: object.table('table\u name')用从table\u架构中拉出的'table\u name'的列名填充数组 object.insert(数据数组)使用列数组和数据数组在'table\u name'中运行insert语句 object.select('where')使用where语句输入返回'table\u name'中的所有内容,或者不返回任何内容 我这样做是因为我很懒,我想让我的代码更漂亮。但是,模式查找从我的表中返回ID列
object.table('table\u name')
用从table\u架构中拉出的'table\u name'
的列名填充数组object.insert(数据数组)
使用列数组和数据数组在'table\u name'
中运行insert语句object.select('where')
使用where语句输入返回'table\u name'
中的所有内容,或者不返回任何内容ID
列,这很好,因为有时我需要它与object.select()一起返回。然而,这使得object.insert()
有点困难
是否有一些我不知道的SQL功能可以让你准确地插入到一个自动递增的列中,或者有一个更简单的解决方案就在我眼前,而我只是一个十足的白痴。自动递增的列无法插入。您可以执行insert(绕过自动递增字段)并只接受自动生成的id。您需要从insert语句中省略id列,并使用last\u insert\u id()
获取上次插入的密钥不确定您正在使用哪个rdbms,但在SQL server中,您可以通过以下方式允许插入标识列:
SET IDENTITY_INSERT dbo.MyTable ON
但我不知道你为什么要这么做
相反,在执行以下操作时:object.table('table_name'),收集的不仅仅是列名,例如ColumnName、DataType、IsIdentity等。它可以通过多维数组或类进行收集
然后在“插入/选择”上,可以过滤掉IsIdentity的列。在构造插入时,了解数据类型也会很有帮助。MySQL支持在自动递增字段中插入。。。但当然不推荐这样做