从php中的post方法输入表单数据

时间:2016-09-25 04:51:36

标签: php sql post

我有一个主键设置为自动增量的数据库。我无法从php中的post方法输入表单数据。

这是代码。我在用户数据库中有登录表。也是一个表单,其操作设置为低于代码。

<?php 
if(isset($_POST['signup'])){
    if (isset($_POST['Full-name']) && isset($_POST['psd']) && isset($_POST['email'])) {
            $link2 = @mysqli_connect('localhost', 'root', '') or die("Oops! Can't connect");
            @mysqli_select_db($link2, 'users') or die("Can't find Database");
            $fullname = $_POST['Full-name'];
            $email2 = $_POST['email'];
            $newpassword = $_POST['psd'];
            echo $fullname.$email2.$newpassword; //print sucessfully

            $query2 = mysqli_query($link2, "INSERT INTO logins VALUES (NULL, $email2, $newpassword)");
            if ($query2) {
    echo "You have signed up successfully";
} else {

    echo "Error: ";   //query prints this statement
}
mysqli_close($link2);
        }   

}

?>

这是我的数据库结构Db structure

3 个答案:

答案 0 :(得分:0)

尝试:

Insert into logins (Id,email,password) values (NULL, ....

假设您的姓名字段为&#34; Id&#34;,&#34; email&#34;,&#34; password&#34;等

答案 1 :(得分:0)

如果Null值是您的id(自动增量),请尝试此操作,然后您不想指定它,请将其留空。就像这样

 $query2 = mysqli_query($link2, "INSERT INTO logins(username,password) VALUES ($email2, $newpassword)");

答案 2 :(得分:0)

您必须首先记住,您只提供 10个字符用户名 8个字符用于密码

即使它是一个varchar,它只允许10个Charterers用户名和8个字符用于密码及以上,如果你输入我很潮湿,确定它会显示你插入数据库的错误。

确保更新或更改您在数据库中为用户名和密码提供的值。

  

注意:如果用户为用户名提供了11个字符,为密码提供了8个字符,则很可能无法进入数据库。

交叉检查:尝试将echo放回语句并在此之后退出循环并直接将回显的查询放入MYSQL中,以便您可以非常轻松地找到错误并根据要求对其进行纠正你需要。

考虑到id为自动增量,您的查询需要像这样改变。

$query2 = mysqli_query($link2, "INSERT INTO logins(`username,password`) VALUES ('".$email2."', '".$newpassword."')");

问题不在于人物数量。但它出现在查询中。

$query2 = mysqli_query($link2, "INSERT INTO logins(`username,password`) VALUES ('".$email2."', '".$newpassword."')"); 

没用。但用它代替,

$query = "INSERT INTO logins(username,password) VALUES ('".$email2."', '".$newpassword."')";
$query2 = mysqli_query($link2, $query);

为我工作!谢谢所有回复的人。