繁体   English   中英

html形式,PHP将数据插入数据库无法正常工作?

[英]html form, PHP insert data into database not working?

当我提交表单时,我有HTML注册表单,PHP代码出现并且数据没有插入数据库,我使用phpMyAdmin创建了数据库,我该怎么办?

这是我的PHP代码:

     <?php
        $con=mysqli_connect('localhost','root','');
        $db=mysqli_select_db($con,'research_sys');
    if ($con) {
        echo "good";
        }else {
        die('error');
        }
        if(isset($_POST['submit'])){
$Fname = mysqli_real_escape_string($con,$_POST["Fname"]);
$Lname = mysqli_real_escape_string($con,$_POST["Lname"]);
$email = mysqli_real_escape_string($con,$_POST['email']);
$password = mysqli_real_escape_string($con,$_POST['password']);
    $sql =  mysqli_query($con,"INSERT INTO `research_sys`.`researcher` (Re_fname,Re_lname,Re_mobile,Re_password) values ('$Fname','$Lname','$email','$password ')");

            if (mysqli_query($sql)){
            echo "insert";
            } else {
                echo "error" .$sql ."<br>". mysqli_error($con);
                }           
}
?>

这是我的注册HTML代码

            <form method="post" action="connect.php">
                <legend class="center">Register </legend>
                <br>
                <div>

                    <input type="text" name="Fname" placeholder="First Name"/>
                </div>
                <div>

                    <input type="text" name="Lname" placeholder="Last Name"/>
                </div>

                <div>
                    <input type="text" name="email" placeholder="Email"/>
                </div>

                <div>
                    <input type="password" name="password" placeholder="Password"/>
                </div>

                <div>
                    <input type="password" name="con_password" placeholder="Password confirm"/>
                </div>
                <input type="submit" name="submit" value="submit"/>
            </form>

请看以下内容:

$sql =  mysqli_query($con,"INSERT INTO `research_sys`.`researcher` 
        ^^^^^^^^^^^^ function

        (Re_fname,Re_lname,Re_mobile,Re_password) 
        values ('$Fname','$Lname','$email','$password ')");
                                                     ^ space

    if (mysqli_query($sql)){
        ^^^^^^^^^^^^ function

您两次使用该mysqli_query()函数,删除其中一个,然后执行以下操作:

if ($sql){...}

mysqli_error($con)应该向您抛出了一个错误。

如果没有引发错误,则可能表明您将其用作file:///而不是http://localhost

编辑:

“我有html注册表格,但我提交了php代码apears表格”

那是因为我在引用您之前在上面写的内容。 您需要在安装了php / mysql并正常运行且以http://localhost的Web服务器上运行此服务器。

另外,删除此'$password '中的空格。 该空格算作字符。

  • 还要仔细检查您的列名。 似乎有一些不匹配(Re_fname,Re_lname,Re_mobile,Re_password)Re_mobile和引用的是电子邮件'$email'的价值观。

您似乎还存储纯文本密码; ,如果您打算与此一起生活,那是不安全的。 使用password_hash()和准备好的语句。


脚注:

    $con=mysqli_connect('localhost','root','');
    $db=mysqli_select_db($con,'research_sys');

您可以将其缩短为在mysqli_connect()使用所有4个参数:

    $con=mysqli_connect('localhost','root', '', 'research_sys');

暂无
暂无

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

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