我想在php中插入mysql表。“我的成员”表包括列: id, name, email, birthday, mobile, sex, money, date_reg.
我有变量:
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$sex = $_REQUEST['sex'];
$time = time();
我通常使用以下查询:
mysqli($conn, "INSERT INTO members (name, email, sex, date_reg) VALUES ('$name', '$email', '$sex', '$time');
但是当我建立vps时,我需要使用查询:
mysqli($conn, "INSERT INTO members (name, email, birthday, mobile, money, sex, date_reg) VALUES ('$name', '$email', '','','' , '$time');
如果members表有太多的列,那么这个插入就变得很困难。我仍然希望使用与第一个查询相同的查询,有一种方法我仍然这样做。
2条答案
按热度按时间plicqrtu1#
这不是php的问题。您必须为mysql列设置一个默认值,以便在运行期间能够忽略它
INSERT
.mysql文档中对此进行了完美的描述:
一
DEFAULT
数据类型规范中的value子句显式指示列的默认值。示例:CREATE TABLE t1 ( i INT DEFAULT -1, c VARCHAR(10) DEFAULT '', price DOUBLE(16,2) DEFAULT '0.00' );
zsbz8rwp2#
像这样的问题有点主观。
试试这个
因为它更容易修改和捕捉语句中的错误,特别是在插入大量列时。如果必须插入10、15或更多列,我认为使用(x,y)values(1,2)语法很容易混淆。
如果不同sql标准之间的可移植性是一个问题,那么
INSERT INTO table (x, y) VALUES (1,2)
优先考虑。如果您想在一个查询中插入多条记录,它看起来不像
INSERT INTO ... SET
语法将起作用,而另一个将起作用。但在大多数实际情况下,您是在一组记录中循环执行插入操作,尽管在某些情况下,可能会构造一个大型查询来在一个查询中将一组行插入到表中,而不是为每一行创建一个查询。