想知道是否有简写版本将新记录插入启用主键的表中? (即不必在查询中包括关键列) 比方说键列,被称为ID,其他列FNAME,LNAME和网站PHP mySQL - 在主键上使用自动增量插入新记录
$query = "INSERT INTO myTable VALUES ('Fname', 'Lname', 'Website')";
想知道是否有简写版本将新记录插入启用主键的表中? (即不必在查询中包括关键列) 比方说键列,被称为ID,其他列FNAME,LNAME和网站PHP mySQL - 在主键上使用自动增量插入新记录
$query = "INSERT INTO myTable VALUES ('Fname', 'Lname', 'Website')";
使用默认的关键字:
$query = "INSERT INTO myTable VALUES (DEFAULT,'Fname', 'Lname', 'Website')";
此外,您还可以指定列,(这是更好的做法):
$query = "INSERT INTO myTable
(fname, lname, website)
VALUES
('fname', 'lname', 'website')";
参考:
是的,我知道最好设置每一列。但是这张表的表格不会被改变,所以我只是好奇如何使用最少量的代码来实现这个诀窍。谢谢! – JimmyJammed
“不会被改变”是一个非常巨大的假设。也许这是一个一次性的表格,当你完成这个当前的任务时你会放弃它,但是否则谁知道业务需求何时会以意想不到的方式发生变化。在绝大多数情况下,如果您使用带列名的第二个表单,那么接下来需要维护系统的人将非常感激。 – GrandOpener
我更喜欢这句法:
$query = "INSERT INTO myTable SET fname='Fname',lname='Lname',website='Website'";
+1,我也喜欢,只适用于MySQL /不能在SQLite中运行。 –
这是phpMyAdmin方法。
$query = "INSERT INTO myTable
(mtb_i_idautoinc, mtb_s_string1, mtb_s_string2)
VALUES
(NULL, 'Jagodina', '35000')";
如果你打算给PHP一个查询,你应该真的使它成为一个参数化查询。 – GrandOpener
你已经得到了答案。你的例子应该按预期工作(aasuming ID是一个自动增量)。 – konsolenfreddy
@konsolenfreddy:他使用插入sytnax,要求指定每个列值。 – webbiedave
我建议不要在应用程序中插入这种类型的sytnax,因为如果将来添加列(或更改列顺序),则必须返回并更改SQL语句,即使这些列具有默认值。如果它是一次数据库更新,那么这没什么大不了的。 – webbiedave