从webform将信息保存到数据库

时间:2017-07-11 22:35:26

标签: php sql phpmyadmin

$query = "INSERT INTO users ". "(first_name,last_name,dob,mobile_number,landline_number,email) ". "VALUES('$fname','$sname','$dob','$mobile','$landline','$email', NOW())";
$query = "INSERT INTO address ". "(house_number,street_name,town/city,postcode,province/county) ". "VALUES('$hnumber','$addr','$town','$pcode','$county', NOW())";

$result = mysqli_query($conn, $query) or die("Invalid query 2"); // runs query using open connection

所以我可以创建与我的数据库的连接没问题,在我的上一页上我可以向数据库发送用户名和密码,但后来我到用户详细信息页面保存信息并不断获得无效查询2错误。表名是正确的(用户和地址),所有变量拼写正确。有没有人有一个建议来解决问题或更好的选择(我的意思是只是指出我正在研究的正确方向,如果我偏离目标,如果我只是错误的东西或在错误的地方,然后我会欣赏这个抬头,现在已经有一段时间了)

这是上一页的代码,它可以正常工作并将信息发送到数据库:

$query = "INSERT INTO login ". "(username,password) ". "VALUES('$uname','$epass', NOW())";// sets up sql query
$result = mysqli_query($conn, $query) or die("Invalid query 2"); // runs query using open connection

mysqli_close($conn); // close database connection

据我所知数据库方面的所有内容都很好,所有数据类型都是varchar,除了dob这是date(我已经尝试将其更改为varchar以查看它是否修复了问题,但它没有)和userID是int和是唯一主键的自动增量。我还测试了没有验证规则的php文件,仍然给出了相同的错误。

3 个答案:

答案 0 :(得分:0)

这里有点不对劲。

首先,您要重新分配变量$ query;所以第一个插入将被第二个插入覆盖,你需要连接变量。

然后,您有两次尝试一次发送的查询。但是你永远不会告诉Sql你在开始第二次之前已经完成了第一次。

请尝试以下操作,注意每个末尾的半冒号;

您还在列名中加入斜杠,这是非法的。

最后,您有比插入列更多的值。从末尾删除now()。

$query = "INSERT INTO users ". "(first_name,last_name,dob,mobile_number,landline_number,email) ". "VALUES('$fname','$sname','$dob','$mobile','$landline','$email');"; 
$query .= "INSERT INTO address ". "(house_number,street_name,town_city,postcode,province_county) ". "VALUES('$hnumber','$addr','$town','$pcode','$county');"; 

虽然现在可以使用,但我强烈建议您对Sql的安全实践进行一些研究。

这将是一个很好的起点https://www.w3schools.com/php/php_mysql_prepared_statements.asp

旁注,为什么要结束你的字符串?没有必要

$query = "INSERT INTO users (first_name,last_name,dob,mobile_number,landline_number,email)  VALUES('$fname','$sname','$dob','$mobile','$landline','$email', NOW());";

答案 1 :(得分:-1)

可能是因为您在第一次通话后关闭了连接。

答案 2 :(得分:-1)

尝试or die(mysqli_error($conn));

修改 删除传递值“NOW()”。

代码:

$query = "INSERT INTO address ". "(house_number,street_name,town_city,postcode,province_county) ". "VALUES('$hnumber','$addr','$town','$pcode','$county')";