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

时间:2018-11-06 00:46:24

标签: php mysql mysqli

我想将mysql表插入php。 我的成员表包括以下列: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 个答案:

答案 0 :(得分:0)

这样的问题有点主观。

尝试一下

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语法不会起作用,而另一种语法会起作用。但是在大多数实际情况下,无论如何都可能循环遍历一组记录以进行插入,尽管在某些情况下可能会构造一个大型查询,以便在一个查询中将一堆行插入到表中,而对于每行。

答案 1 :(得分:0)

这不是PHP问题。您必须为mysql列设置默认值,以便在INSERT期间忽略它。

mysql docs中有完美的描述:

  

数据类型规范中的DEFAULT值子句明确指示列的默认值。例子:

     

CREATE TABLE t1 ( i INT DEFAULT -1, c VARCHAR(10) DEFAULT '', price DOUBLE(16,2) DEFAULT '0.00' );