2017-01-24 131 views
0

我正在创建注册系统并且此代码正在工作,但是当我插入三个以上的字段时,它不插入数据。在此代码中,它插入字段名称,fname电子邮件,但没有值被插入其他列。这是为什么发生?在mysql中使用php插入数据

<?php 

$name=$_POST["name"]; 
$fname=$_POST["fname"]; 
$email=$_POST["email"]; 
$gender=$_POST["gender"]; 
$password=$_GET["password"]; 



$query="INSERT INTO student(name,fname,email,password) VALUES ('".$name."','".$fname."','".$email."','".$password."')"; 

$url="localhost"; 
$user="root"; 
$pass=""; 
$db="sms"; 

$connection=new mysqli($url,$user,$pass,$db); 
$connection->query($query); 
header("Location: index1.php") 

?> 
+0

欢迎来到Stack Overflow!您可以先[参观](http://stackoverflow.com/tour)并学习[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)并创建一个[最小,完整和可验证](http://stackoverflow.com/help/mcve)示例。这使我们更容易帮助你。 –

+0

尝试给所有字段这样的名称 – DaYdReAmeR

+2

哈希你的$密码,不要直接存储。为什么$ _GET输入密码。 –

回答

-1

因为你的变量是字符串,所以PHP把它作为一个字符串,所以使用这个作为;

$query="INSERT INTO student(name,fname,email,password) VALUES ("'".$name."'","'".$fname."'","'".$email."'","'".$password."'")"; 

加双引号来封装单引号。

+0

感谢它的工作,但没有问题,它没有显示密码 –

-1
<?php 
    $name = $_POST["name"]; 
    $fname = $_POST["fname"]; 
    $email = $_POST["email"]; 
    $gender = $_POST["gender"]; 
    $password= $_POST["password"]; 

    $query = "INSERT INTO student(name,fname,email,password) VALUES ('".$name."','".$fname."','".$email."','".$password."')"; 

    $url  = "localhost"; 
    $user = "root"; 
    $pass = ""; 
    $db  = "sms"; 

    $connection = new mysqli($url,$user,$pass,$db); 
    $connection->query($query); 
    header("Location: index1.php") 
?> 
+0

为什么负面?你能提到原因吗? –

0

如果您尝试使用三个以上的字段,那么还要检查数据库表。确保添加更多的列也必须在数据库表中添加这些列。并且还有建议使密码字段更加安全。 请使用以下代码尝试。

<?php 

$name=$_POST["name"]; 
$fname=$_POST["fname"]; 
$email=$_POST["email"]; 
$gender=$_POST["gender"]; 
$password=md5($_POST["password"]); 



$query="INSERT INTO student(name,fname,email,gender,password) VALUES('".$name."','".$fname."','".$email."','".$gender."','".$password."')"; 

$url="localhost"; 
$user="root"; 
$pass=""; 
$db="sms"; 

$connection=new mysqli($url,$user,$pass,$db); 
$connection->query($query); 
header("Location: index1.php"); 

?>