PHP update()函数不起作用

时间:2011-02-15 18:38:58

标签: php model-view-controller web-applications

我正在开发一个Web应用程序,需要根据用户要求通过表单更新数据库条目。我正在使用Savant模板引擎来实现MVC结构。一切都很顺利,直到我继续测试update()功能。当我填写更新表单并单击更新按钮时,它会显示一个空白屏幕,其URL为update.php。这是Update.php页面的代码:

<?php
    include_once("../../Resources/Libraries/Savant3.php");
    include_once("../../Classes/Models/Test.php");
    $s=new Savant3();
    $s->method=$_SERVER['REQUEST_METHOD'];
    if($_SERVER['REQUEST_METHOD']=="GET")
    {
        $b=Test::readSingle($_GET['id']);
        $s->b=$b;
        $s->display("UpdateView.tpl");
    }
    else
    {
        $b=new Test();
        $b->id= $_POST['id'];
        $b->title= $_POST['title'];
        $b->address= $_POST['address'];
        $b->location= $_POST['location'];
        if($b->validate==true)
        {
            Test::update($b);
            header('location: ../../Applications/Success');
            return;
        }
    }
?>

我认为问题很可能是上述代码中的某个地方。如果您希望在模型中看到update()功能,请执行以下操作:

public static function update(Test $b)
{
    $id=$b->id;
    $title=strip_tags($b->title);
    $address=strip_tags($b->address);
    $location=strip_tags($b->location);
    $m=new mysqli("localhost", "XXXXXXXX", "XXXXXXXXXXX", "XXXXXXXXXXX");
    $s=$m->prepare("update test set title=?, post=?, location=? where id=?");
    $s->bind_param("sssi", $title, $address, $location, $id);
    $s->execute();
}

如果您有任何信息,请提供帮助。这个很重要!提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

正如我在问题的评论中指出的那样,我解决了问题,因为我意识到我在validate()函数之后缺少一对括号。欢呼声。