PHP 发布值但数据库未更新

标签 php mysql mysqli

我遇到问题,我的表单正在提交值,但它们没有输入数据库?

我尝试回显 $_POST 来查看发布的内容,所有内容都按应有的方式发布,但在进入数据库时​​失败。

这是我的代码

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

    foreach($_POST["id"] AS $id) {


        $name = mysqli_real_escape_string($_POST["name"][$id]);
        $age = mysqli_real_escape_string($_POST["age"][$id]);
        $update1 = "UPDATE `booked_peoples` SET `name` = '$name',`age` = '$age' WHERE `booked_peoples`.`id` = ".$id;
        $update2 = mysqli_query($con,$update1);
        if($update2){
            echo '<script>window.location.href="add_passengers.php?book_id='.$book_id.'";</script>';
        }
        else {

            echo 'OOPS';
        } } }

这是 php 表单代码

if(isset($_GET['book_id']) and $_GET['action']=='edit')
                            {

                                $sq_edit_ps = "select * from booked_peoples where booking_id = ".$book_id;
                                $qr_edit_ps = mysqli_query($con,$sq_edit_ps);

                                while($rw_edit_ps = mysqli_fetch_array($qr_edit_ps))


                                {
                                    $ps_id = $rw_edit_ps['id'];
                                echo '<form action="" method="POST" role="form">';

                                echo '<div class="row">
                                        <div class="col-sm-9">
                                            <label>Name</label>
                                            <input class="form-control" type="text" name="name['.$ps_id.']" value="'.$rw_edit_ps['name'].'"/>

                                        </div>
                                        <div class="col-sm-3">
                                            <label>Age</label>
                                            <input class="form-control" type="text" name="age['.$ps_id.']" value="'.$rw_edit_ps['age'].'"/>
                                            <input type="hidden" name="id[]" value="'.$ps_id.'"/>
                                        </div>
                                    </div>';

                                }
                                echo '
                                            <button class="btn btn-info btn-flat" type="submit" name="update_detail" >Update</button>

                                    </form>
                                </div>';

                            }                   

我的代码是盲目的......:(

最佳答案

正是 mysql_real_escape_string 阻止了它的工作。

它需要是 $name = mysqli_real_escape_string($con, $_POST["name"][$id]);

感谢上面的发帖者指出:)

希望发布解决方案,以防其他人遇到同样的问题

关于PHP 发布值但数据库未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38013161/

相关文章:

php - 在 PHP 中使用工厂模式创建对象

MySQL 全文搜索结果相关性

mysql - 如何使用 mysql 转储数据库(服务器上没有 mysqldump)

php - MySQLi mysqli 获取数组关联替换不起作用

PHP/MYSQL 帮助向所有用户(关注者)甚至数百万用户发出通知

php - 在 SQL 查询中使用日期时间边距

php - mysql - 根据创建日期选择最后两个表

php - Twig 默认过滤器会覆盖定义的模板变量吗?

php - 如何在 BitBucket 管道中设置 mysqli

php - 使用多个复选框名称查询搜索