Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL插入到自动增量列中_Php_Sql - Fatal编程技术网

Php SQL插入到自动增量列中

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列

基本上,我有一个用于通用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.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支持在自动递增字段中插入。。。但当然不推荐这样做