Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链接到此表单的PHP不是';t将条目提交到我的数据库_Php_Html_Forms_Mysqli - Fatal编程技术网

链接到此表单的PHP不是';t将条目提交到我的数据库

链接到此表单的PHP不是';t将条目提交到我的数据库,php,html,forms,mysqli,Php,Html,Forms,Mysqli,我在一个网站上有一个表单,需要将信息提交到MySQL数据库。我主要是一名网页设计师,PHP对我来说有些陌生。我编写了以下PHP代码作为HTML表单的操作,如下所示: 从查询中的字符串中删除mysqli_real_escape_字符串,并将变量设置为等于post值。您的“id”也需要从插入中删除,因为数据库中的id应该是自动递增的。在错误验证和准备语句中添加,以帮助防止sql注入 //insert data <?php if(!empty($_POST)) {

我在一个网站上有一个表单,需要将信息提交到MySQL数据库。我主要是一名网页设计师,PHP对我来说有些陌生。我编写了以下PHP代码作为HTML表单的操作,如下所示:


从查询中的字符串中删除mysqli_real_escape_字符串,并将变量设置为等于post值。您的“id”也需要从插入中删除,因为数据库中的id应该是自动递增的。在错误验证和准备语句中添加,以帮助防止sql注入

//insert data
<?php 
    if(!empty($_POST)) {          
        if(isset($_POST['submit'])){
            //connect to mysql
            $mysqli = mysqli_connect( 'localhost', 'user', 'pass', 'dbname' );

            //check connection
            if (!$mysqli) {
                die( 'Connect Error: ' . mysqli_error());
            }

            $u_fname = mysqli_real_escape_string($mysqli, $_POST['u_fname']);
            $u_lname = mysqli_real_escape_string($mysqli, $_POST['u_lname']);
            $u_email = mysqli_real_escape_string($mysqli, $_POST['u_email']);
            //VALIDATION ARRAY
            $error = [
                "u_fname"=> '',
                "u_lname"=> '',
                "u_email"=> ''
            ];

            if($u_fname == '') {
                $error['u_fname'] = "Please Enter Your First Name";
            }

            if($u_lname == '') {
                $error['u_fname'] = "Please Enter Your Last Name";
            }

            if($u_email == '') {
                $error['u_fname'] = "Please Enter Your Email";
            }
            else {
                //IF NO ERRORS INSERT DATA    
                $stmt = mysqli_prepare($mysqli, "INSERT INTO `table` (`u_fname`, `u_lname`, `u_email`) VALUES (?, ?, ?)");

                mysqli_stmt_bind_param($stmt, 'sss', $u_fname, $u_lname, $u_email);

                mysqli_stmt_execute($stmt);

                //print response from sql
                if ($stmt ) {
                    echo "Success!";   
                }
                else {
                    die("Error" . mysqli_error());
                }
                //close connection
                mysqli_close($mysqli);
            }
        }
    }
?>
//插入数据
至于形式呢

<div class="form-container">
    <form action="signupform.php" method="post" class="isubmit" name="signup">
        <input required type="text" name="u_fname" class="first-name" placeholder="First Name">
        <span><?php echo isset($error['u_fname']) ? $error['u_fname'] : ''?></span>
        <input required type="text" name="u_lname" class="last-name" placeholder="Last Name">
        <span><?php echo isset($error['u_lname']) ? $error['u_lname'] : ''?></span>
        <input required type="text" name="u_email" class="email" placeholder="Email">
        <span><?php echo isset($error['u_email']) ? $error['u_email'] : ''?></span>
        <button class="isubmit submit-text" type="submit" name="submit">submit</button>
    </form>
</div>

提交

如果
ID
是您的主键,并且是自动递增的,那么您需要从插入中省略它。您是否收到任何错误,并且是否启用了
display\u errors
?@prodigitalson不需要,将其设置为NULL将使MySQL使用自动增量值。这里的问题是不可能在字符串中以这种方式使用
$mysqli->real\u escape\u string()
。它需要在字符串之外,尽管事先准备好的语句会更好。@rickdenhaan你说得对。我已经删除了真正的转义字符串,我将研究如何使用准备好的语句。谢谢。您是否强制使用此mysq l_real_escape_string方法?或者任何好的插入都可以?任何人,我都会得到它,因为你需要确定你觉得什么对你最合适。@Jpegzilla,如果这个答案对你有效,你能接受吗?谢谢很抱歉耽搁了这么久,工作有点忙,这几天我忘记了。不幸的是,这仍然不起作用,我不知道为什么。我没有看到mysql有任何错误,代码中也没有错误。我真的不明白这里有什么问题,但谢谢你迄今为止的帮助,我真的很感激。你没有名字。提交应该提交我对上一个答案的编辑。让我知道它是否适合你。它缺少一个$_POST['submit']和button元素中的一个name属性,因此即使您单击了按钮,表单也没有被提交到任何内容。我将其更新为全部过程化PHP,因为我对OOP不够熟悉,但为了安全起见,还添加了代码,以便通过prepared语句执行。