繁体   English   中英

将值插入数据库无法正常工作?

[英]Insert values into DB not working?

大家好,我之前也遇到过类似的问题,但是我放弃了这个想法。 现在,基本上,我的系统允许我的用户将数据输入到字段中,如果他们提交了该信息,则该信息将进入数据库。 现在由于某种原因数据无法保存,并且我收到了存储在我的else语句中的回显,该回显为“ echo”,请稍后再试。“;”

现在,我回到数据库中,查看所有文件,并找到正确的名称,并将其放入查询中,但没有任何内容存储到数据库中。 现在您可能正在考虑在我的代码中最上面的名为connect.inc.php的文件是什么,这基本上是php中连接到服务器的脚本。

这是我的代码请看看谢谢:)

<?php

  //require 'core.inc.php';
  include 'connect.inc.php';


if(isset($_POST['Username'])&& isset($_POST['Password']) && isset($_POST['PasswordAgain'])&& isset($_POST['Firstname'])&& isset($_POST['Lastname'])){

    $username = $_POST['Username'];
    $password = $_POST['Password'];

    $password_again = $_POST['PasswordAgain'];
    $Firstname = $_POST['Firstname'];

    $password_hash = md5($password);

    $Lastname = $_POST['Lastname'];

    if(!empty($username)&& !empty($password) && !empty($password_again) && !empty($Firstname) && !empty($Lastname)){



if ($password !== $password_again) {

            echo "passwords do not match";
        }
        else{

            $query = "SELECT username FROM members WHERE username = '$username'";
            $query_run = mysql_query($query);
            if(mysql_num_rows($query_run )==1){

                echo "The username ". $username ." is taken";

            }else{

                $query = "INSERT INTO members VALUES ('','Firstname','Lastname','Username','Password')";
                if ($query_run = mysql_query($query)){

                    echo "Well done";


                }else{

                    echo "Sorry we couldn't register at this time. Please try again later thank you";
                }

            }

        }
    }   
    else{

        echo "Please fill in all the details thank you ";

    }
}

?>


<form action="join.inc.php" method="post">


     Username: <input type="text" name="Username" value="<?php echo $username; ?>" /><br />
     Password: <input type="password" name="Password" /><br />
     Password Again: <input type="password" name="PasswordAgain" /><br />
     FirstName: <input type="text" name ="Firstname" value="<?php echo $Lastname; ?>"  /><br />
     LastName: <input type="text" name ="Lastname" value="<?php echo $Firstname ?>" /><br />

    <input type="submit" value="SUBMIT" />
</form>

连接脚本

我建议您明确声明INSERT语句中使用的列。

INSERT INTO members (`field1`, `field2`, ...) 
VALUES ('','Firstname','Lastname','Username','Password')

另外,您要插入的空白值是多少? 如果该字段是AUTO_INCREMENT字段,则不应将其包括在VALUES声明中。

尝试这个 :

INSERT INTO members (`field1`, `field2`, ...) 
VALUES ('','$Firstname','$Lastname','$Username','$password_hash')

您应该使用这样的东西。

$query = "insert into members (id,username) values ('','$username')";

如果您的第一个字段是auto_increment

省略field1,如下所示

INSERT INTO members (`field2`,`field3`,...)
VALUES ('field2Val','field3Val',...);
password !== $password_again 

应该

password != $password_again

尝试更改为:

$query = "INSERT INTO members VALUES ('". $Firstname."','". $Lastname. "','" .$username. "','" .$password_hash. "')";
$result = mysql_query($query);
  if (!$result){

           echo "Sorry we couldn't register at this time. Please try again later thank you";

   }else{
           echo "Well done";

   }

启用error_reporting并查看实际出了什么问题,ID第一字段是否自动递增?

如果那是自动递增,您的查询将执行,但如果不是自动递增并设置为PK,则不会插入记录并引发重复键错误。

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM