【发布时间】:2011-02-15 18:38:58
【问题描述】:
我正在开发一个 Web 应用程序,需要通过表单根据用户要求更新数据库条目。我正在为 MVC 结构使用 Savant 模板引擎。在我继续测试update() 函数之前,一切都很顺利。当我填写更新表单并单击更新按钮时,它会导致一个空白屏幕,其中包含 update.php 的 URL。以下是 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();
}
如果您有任何信息,请提供帮助。这个很重要!提前致谢。 :)
【问题讨论】:
-
你服务器的错误日志是怎么说的?
-
将
error_reporting(E_ALL); ini_set('display_errors', true)添加到Update.php的顶部,空白页通常是错误的标志,但服务器配置可能设置为不显示它们 -
@德国朗姆酒谢谢哥们。它只是在验证函数之后缺少一对括号。非常感谢。有效。干杯! :)
-
@stealthyninja 这只是类型提示 - 在 PHP 中,如果提示是对象,则它是有效的。 php.net/manual/en/language.oop5.typehinting.php
-
@DeaconDesperado:很好,谢谢。
标签: php model-view-controller web-applications