MySql插入查询在PHP中不起作用?

MySql插入查询在PHP中不起作用?,php,mysql,sql,Php,Mysql,Sql,我在php中没有得到任何sysntax错误 很抱歉,我编辑了它。您弄乱了第四个变量: Name Type Null Key id bigint(10) NO PRI auto_increment sname varchar(20) NO dob date YES NULL email varchar(30) NO

我在php中没有得到任何sysntax错误


很抱歉,我编辑了它。

您弄乱了第四个变量:

 Name          Type           Null      Key
 id       bigint(10)      NO        PRI     auto_increment
sname     varchar(20)     NO             
dob       date  YES       NULL   
email     varchar(30)     NO             
gender    varchar(7)      NO             
mobile    int(10)     YES            
country       varchar(15)     NO             
state     varchar(15)     YES            
city      varchar(15)     YES 
您还错过了Field15之后的收盘报价

为了避免任何错误,最好在查询中包含您的模式:

POST[Field4] [Should Be] $_POST[Field4]
编辑

不如我们尝试一个完全转义的查询

INSERT INTO example_table (field1, field2, field3) VALUES (value1, value2, value3);

使用参数,而不是POST数据连接,以避免潜在的SQL注入。

我看不出这里有任何问题,但我猜“POST[Field4]”是一个输入错误-但正如其他人所说,您确实不应该使用mysql函数。

mysql\u查询不会引发异常,您必须检查它的返回值,并调用mysql\u error获取更多信息


如评论中所述,mysql已被弃用。

实际上语法是错误的

,'$_POST[Field15])'");
                  ^_______________ Missed quote.
应该是这样的:

Insert into register ('field1','field2',...,'field n') values ('value1','value2',..,'value n');

试试这个。

开始使用PDO或mysqli,并停止使用mysql,因为它已被弃用。此外,mysql不会抛出异常,因此try-catch有点无用:)您在最后一个值
'$\u POST[Field15]
上缺少了一个
'
,由于输入错误,投票太过本地化。例如,本可以通过参数化查询更容易避免的输入错误。=)也要使用(““$\u POST['Field4']”.“,””。同样的,不要在查询中使用$\u POST[value]。最好将该值赋给一些变量,如,$field1=$\u POST[field1]。然后在查询中使用此变量。不,有充分的理由列出字段名,但如果您插入到以第一个字段开头的相关字段中,则它们不是必需的。实际上,如果您提到like$\u POST['value']在查询中,它会给出一个错误。@Sibi_it For auto increment column id建议是正确的。我是.Net开发人员,认为mysql会像sql server一样自动增加值。@bowlerae有人否决了它,最初它是-1,我以-1对0,你投票给1。明白了。嗯,我真的不知道你不需要架构。。。。你知道的越多。^。^@Matt Clark刚刚编辑了我的问题,我试过了,仍然不起作用。@Mayur看到我的编辑,还有,你能用所有post变量发布你的HTTP查询吗?@Matt Clark这是自动增量问题,我传递的是最小参数,我没有传递自动增量的默认关键字。所以…你说的是我的第一个我编辑的帖子,因为每个人都投了反对票,实际上是正确的答案,尽管我的帖子中仍然有正确的答案,但其他人被标记为正确?太棒了,很高兴能帮上忙!
,'$_POST[Field15])'");
                  ^_______________ Missed quote.
Insert into register ('field1','field2',...,'field n') values ('value1','value2',..,'value n');
$query = "INSERT INTO table(column 1, column 2, column 3) VALUES('".$value1."','".$value2."', '".$value3."')";