PHP MYSQL - 不使用列名但使用自动增量字段插入
我需要将包含 32 个字段的长行插入 MySQL 表中。
我想做这样的事情:
$sql="insert into tblname values (... 32 fields ...)";
显然,如果字段与 MySQL 表字段的顺序相同,它就可以正常工作。但是,我的表有一个自动递增 id 作为它的第一个字段。
我想要的是填写除第一个(id)之外的所有表名。
建议?
I need to insert a long row with 32 fields into a MySQL table.
I'd like to do something like this:
$sql="insert into tblname values (... 32 fields ...)";
Obviously, it works fine if the fields are in the same order as the MySQL table fields. But, my table has an auto-increment id as it's first field.
What I want is to fill in all table names but the first (id) one.
Suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
只需使用
NULL
作为您的第一个值,autoincrement
字段仍将按预期工作:Just use
NULL
as your first value, theautoincrement
field will still work as expected:将
NULL
插入到自动增量字段中。我建议除非这是一个 hack 脚本,否则您应该使用字段名称。理由是,如果您向表中添加字段或更改其顺序,您的代码将中断。
相反,明确字段名称,将来会更好。
Insert
NULL
into the auto-increment field.I recommend that unless this is a hack script, you use field names. The rationale is that your code will break if you ever add a field to the table or change their order.
Instead, be explicit with field names, and it will go much better in the future.
使用
NULL
或0
插入自动递增值,如下所示:Use
NULL
or0
to insert an auto-incremented value as shown below:当我们尝试在插入查询中不使用列名时,我们应该省略任何列值,
如果上述信息有误,请告知。
We should omit any column values when we try without column name in insert query,
Advise if above information is wrong.
这是我使用的一个简单的快捷方式:
请注意,此代码容易受到 SQL 注入 并应进行修改以适应 PDO,但我认为这个简化的脚本会更直接地回答有关最初发布的代码的问题。
Here's a simple shortcut that I've used:
Please note that this code would be vulnerable to SQL Injection and should be modified to accommodate PDO's, but I felt this simplified script would more directly answer the question with regards to the originally posted code.