我想将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表中的列过多,则此插入变得困难。我仍然想使用与第一个查询相同的查询,仍然有一种方法。
答案 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' );