PHP OOP查询不会在DB中插入新行

时间:2016-10-02 14:32:07

标签: php mysql oop

我正在使用PHP OOP开发自定义CMS,现在我遇到了一个非常糟糕的问题!基本上我有一个这样的表格:

<form role="form" method="POST" action="">
    <div class="box-body">
        <div class="form-group">
            <label>Menu name</label>
            <input type="text" class="form-control" placeholder="Enter menu name" name="mname" required>
        </div>
        <div class="form-group">
            <label>Menu link numbers</label>
            <input type="number" class="form-control" placeholder="Number of menu items" min="1" max="9" name="mnumbers" required>
        </div>
    </div>
    <div class="box-footer">
        <button name="submit" type="submit" class="btn btn-primary">Submit</button>
    </div>
</form>

正如我对此进行编码的那样:

    <?php 
if(isset($_POST['submit'])){
    $menu_name      = $_POST['mname'];
    $menu_numbers   = $_POST['mnumbers'];
    $nav = new Navigation();
    $nav->NewMenu($menu_name,$menu_numbers);
}
?>

因为你可以看到我调用了一个名为Navigation的类。这个课程是这样的:

    <?php 
class Navigation
{
    private $db;
    public function __construct()
    {
        $this->db = new Connection();
        $this->db = $this->db->dbConnect();
    }
    public function NewMenu($menu_name,$menu_numbers)
    {
        if(!empty($menu_name)&&!empty($menu_numbers))
        {
            $ins = $this->db->prepare("INSERT INTO menu_nav (menu_name, menu_items) VALUES ('?', '?')");
            $ins->bindParam(1,$menu_name);
            $ins->bindParam(2,$menu_numbers);
            $ins->execute();
        }else{
            header("Location: maint/php/includes/errors/009.php");
            exit();
        }
    }
}
?>

所以一切看起来都很棒,数据必须插入到表中但问题是,每当我运行此代码时,除了?之外没有任何内容添加到数据库中。标记和零号!

Here's the print screen of my MySQL database

那么这里出了什么问题,有人可以告诉我这是什么问题吗?

1 个答案:

答案 0 :(得分:0)

您的INSERT声明不会为绑定做好准备。只需删除'之前和之后的?即可。像这样:

$ins = $this->db->prepare("INSERT INTO menu_nav (menu_name, menu_items) VALUES (?, ?)");
                                                                                ^  ^