不会使用 PHP 将用户输入存储在数据库中


wont store user input in the database using php

问题只是存储了密码,但其余的没有... 这是 PHP 代码

    <?php
         define('DB_NAME','my_db');
         define('DB_USER','root');
         define('DB_PASSWORD','123');
         define('DB_HOST','localhost');
         $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
         $firstname = isset($_POST['fname']) ? $_POST['fname'] : '';
         $lastname =isset($_POST['lname']) ? $_POST['lname'] : '';
         $email = isset($_POST['email']) ? $_POST['email'] : '';
         $bday = isset($_POST['bday']) ? $_POST['bday'] : '';
         $gender = isset($_POST['gender']) ? $_POST['gender'] : '';
         $pass = isset($_POST['password']) ? $_POST['password'] : '';
         $submit = isset($_POST['submit']) ? $_POST['submit'] : null;
         $sql = "INSERT INTO user(fname,lname,email,bday,gender,password)
         VALUES ('$firstname','$lastname','$email','$bday','$gender','$pass')";
       if(!mysql_query($sql)){
         die('Error: ' . mysql_error());
       }
        mysql_close();
       ?>

这是 HTML 代码

   <form action="connect.php" method="post">
             First name: <input type="password" name="fname">
             Last name: <input type="text" name="lname"><br><br>
             Email Address: <input type="email" name="email"><br><br>
             Birthday: <input type="date" name="bday">
             Sex: <input list="Sex" name="gender">
             Password: <input type="password" name="password"><br><br>
             <datalist id="Sex">
             <option value="Male">
             <option value="Female">
             </datalist><br><br>
             <input type="submit" value="Sign up!" id="btnsignup" />
        </form>

*表中的数据类型为:FNAME 是 Varchar,lname 是 Varchar,电子邮件是 Varchar,bday 是日期,性别是 Char,密码是 char *

首先,您的HTML只能与最新的浏览器一起使用。试试这个来支持较旧的浏览器(也许你也有一个,这就是问题所在):

<form action="connect.php" method="post">
    First name: <input type="text" name="fname">
    Last name: <input type="text" name="lname"><br><br>
    Email Address: <input type="text" name="email"><br><br>
    Birthday: <input type="text" name="bday" placeholder="YYYY-MM-DD">
    Sex: <select name="gender">
    <option value="Male">Male</option>
    <option value="Female">Female</option>
    </select>
    Password: <input type="password" name="password"><br><br>
    <input type="submit" value="Sign up!" id="btnsignup" />
</form>

您可以在 PHP 脚本中所有其他代码之前的第一行中使用var_dump($_POST)print_r($_POST)来检查来自 HTML 的 POST 输入是否到达 PHP。作为替代方案,您可以检查var_dump($_REQUEST)的输出,此数组将包含GET和POST变量。

仔细检查在您发布的代码之前是否执行了其他 PHP 代码(重定向、操作 $_POST 变量等)。还要检查是否有 cookie、$_SERVER 或 ENV 变量设置了您使用的变量名称。

在正常情况下,您的示例代码应该可以工作。

请检查表中字段的字符限制或表中的字段名称。我认为有问题。