PHP没有错误,但数据未插入数据库 [英] PHP no error but data not inserting into database

查看:78
本文介绍了PHP没有错误,但数据未插入数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将数据从表单插入到mySQL DB中,没有连接错误,但是没有数据插入到我的数据库中.任何的想法? 这是我的HTML表单:

<div class="tab-pane" id="Registration">
                    <b><em>Listen to the voice of Soul</em></b>
                    <form class="form" role="form" method="POST" action="signup.php" accept-charset="UTF-8"id="signup-nav">
                        <div class="form-group">
                            <label class="sr-only" for="email2">Email address</label>
                            <input type="email" class="form-control"id="email2" name="signup_email" placeholder="Email address" required>
                        </div>
                        <div class="form-group">
                            <label class="sr-only" for="password2">Password</label>
                            <input type="password" class="form-control" id="pwd2" name="signup_pwd" placeholder="Password" required>
                        </div>  
                        <div class="form-group">
                            <label class="sr-only" for="password3">Confirm Password</label>
                            <input type="password" class="form-control" id="pwdcon" name="signup_pwdcon" placeholder="Confirm Password" required>
                        </div>  
                        <div class="form-group">
                            <input type="submit" name="signUpBtn" value="Sign Up" class="btn btn-primary btn-block"></button>
                        </div>
                    </form>
                </div>  

我的数据库名称是Coldplay,表是userdata,我使用ID = root的本地主机,没有密码

PHP:

<?php

include ("dbh.php");

if(isset($_POST["signUpBtn"])){

$signup_email = $_POST ['signup_email'];
$signup_pwd = $_POST ['signup_pwd'];
$signup_pwdcon = $_POST ['signup_pwdcon'];

$sql_signup = "insert into userdata (email, pwd, pwdcon) 
values ('$signup_email', '$signup_pwd', '$signup_pwdcon')";

mysqli_query($conn, $sql_signup);

mysqli_close($conn);

header("Location: testing.html");


}

?>

PHP数据库处理程序:

<? php

$conn = mysqli_connect("localhost", "root", "", "coldplay");

if (!$conn){
    die("Connection failed: ".mysqli_connect_error());
}

?>

解决方案

请先阅读有关密码哈希如何将参数绑定到mysqli中的准备好的语句.如果您这样保留脚本,则该脚本很容易受到sql注入的攻击.<​​/p>

您的dbh.php文件中有一个带有php标记开头的问题.它应该显示<? php<?php实例(注意空格).

如果这不是问题,则应检查mysqli_query方法的结果,如下所示:

if (!mysqli_query($conn, $sql_signup)) {
    echo "Error: " . mysqli_error($conn);
}

I am trying to insert data from a form to mySQL DB, no connection error, but no data is inserted into my database. Any idea? Here's my HTML form:

<div class="tab-pane" id="Registration">
                    <b><em>Listen to the voice of Soul</em></b>
                    <form class="form" role="form" method="POST" action="signup.php" accept-charset="UTF-8"id="signup-nav">
                        <div class="form-group">
                            <label class="sr-only" for="email2">Email address</label>
                            <input type="email" class="form-control"id="email2" name="signup_email" placeholder="Email address" required>
                        </div>
                        <div class="form-group">
                            <label class="sr-only" for="password2">Password</label>
                            <input type="password" class="form-control" id="pwd2" name="signup_pwd" placeholder="Password" required>
                        </div>  
                        <div class="form-group">
                            <label class="sr-only" for="password3">Confirm Password</label>
                            <input type="password" class="form-control" id="pwdcon" name="signup_pwdcon" placeholder="Confirm Password" required>
                        </div>  
                        <div class="form-group">
                            <input type="submit" name="signUpBtn" value="Sign Up" class="btn btn-primary btn-block"></button>
                        </div>
                    </form>
                </div>  

My database name is coldplay, table is userdata and im using local host with ID=root, no password

PHP:

<?php

include ("dbh.php");

if(isset($_POST["signUpBtn"])){

$signup_email = $_POST ['signup_email'];
$signup_pwd = $_POST ['signup_pwd'];
$signup_pwdcon = $_POST ['signup_pwdcon'];

$sql_signup = "insert into userdata (email, pwd, pwdcon) 
values ('$signup_email', '$signup_pwd', '$signup_pwdcon')";

mysqli_query($conn, $sql_signup);

mysqli_close($conn);

header("Location: testing.html");


}

?>

PHP database handler:

<? php

$conn = mysqli_connect("localhost", "root", "", "coldplay");

if (!$conn){
    die("Connection failed: ".mysqli_connect_error());
}

?>

解决方案

Please first read about password hashing and how to bind parameters to prepared statements in mysqli. Your script is vulnerable to sql injection if you leave it like this.

There is a problem in your dbh.php file with the opening php tag. It should read <?php insteat of <? php (notice the space).

If that was not the problem you should check the result of your mysqli_query method like this:

if (!mysqli_query($conn, $sql_signup)) {
    echo "Error: " . mysqli_error($conn);
}

这篇关于PHP没有错误,但数据未插入数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆