插入表而不详细说明所有列

rlcwz9us  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(457)

我想在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表有太多的列,那么这个插入就变得很困难。我仍然希望使用与第一个查询相同的查询,有一种方法我仍然这样做。

plicqrtu

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' );

zsbz8rwp

zsbz8rwp2#

像这样的问题有点主观。
试试这个

INSERT INTO table SET a=1, b=2, c=3

因为它更容易修改和捕捉语句中的错误,特别是在插入大量列时。如果必须插入10、15或更多列,我认为使用(x,y)values(1,2)语法很容易混淆。
如果不同sql标准之间的可移植性是一个问题,那么 INSERT INTO table (x, y) VALUES (1,2) 优先考虑。
如果您想在一个查询中插入多条记录,它看起来不像 INSERT INTO ... SET 语法将起作用,而另一个将起作用。但在大多数实际情况下,您是在一组记录中循环执行插入操作,尽管在某些情况下,可能会构造一个大型查询来在一个查询中将一组行插入到表中,而不是为每一行创建一个查询。

相关问题