我的MySQL表中的第一列是具有自动增量的主键。我正在尝试用PHP添加一个新行,如下所示。
mysql_query("INSERT INTO users VALUES ('', '$username', '$hashedPassword')");我应该在''或第一个字段中放入什么?它是自动生成的,但我不希望该字段为空。
有趣的是,让字段为空是可行的,但我担心在我没有遇到过的某些情况下,这一点会中断。放在那里的标准实体是什么?
另外,您的解决方案是否也适用于默认为当前时间的时间戳字段?
我是第一次接触PHP和MySQL。谢谢。
发布于 2012-03-23 04:27:37
养成这样指定字段的习惯是很好的
INSERT INTO users (username,password) VALUES ( '$username', '$hashedPassword')或者,如果您也想指定id字段,请使用NULL
INSERT INTO users (id,username,password) VALUES (NULL, '$username', '$hashedPassword')通过指定字段,您的代码不太可能中断,例如,如果您向表中添加额外的字段。
发布于 2012-03-23 04:27:57
INSERT INTO users ('username', 'hashedpassword') VALUES ('$username', '$hashedPassword')
您不需要引用自动生成的id字段,因为它将由MySQL处理。
发布于 2012-03-23 04:26:19
您可以使用NULL。
但是,更好的做法是显式地命名这些列,并省略该列。
INSERT INTO users (username, hashedPassword)
VALUES ('$username', '$hashedPassword')没有为AUTO_INCREMENT列指定值,因此MySQL会自动分配序列号。您还可以显式地将NULL或0赋给列以生成序列号。
https://stackoverflow.com/questions/9829925
复制相似问题