PDO设置服务器响应代码?

时间:2013-10-17 18:19:46

标签: php ajax jquery

我正在对我们使用的框架进行ajax查询。我无法设置服务器响应代码,除非通过设置调用PDO执行方法的位置。

模式的工作原理如下:

运行ajax查询,发布到文件action.php,验证输入。如果输入有效,我们在业务逻辑(application.php)中调用一个函数,然后调用底层的PDO插入/保存方法。如果我们得到一个很好的保存,我们在action.php函数中返回TRUE。

在我的ajax调用中,我有一个.done()函数,通过检查xhr.status来确认保存。当我们成功保存时,我想通过调用http_response_code(201);将xhr.status设置为201。如果我在PDO层中实际执行此操作,就在execute()方法之后,但是我无法在其他任何地方使用它。显然,这不是设置响应代码的正确位置。

抱歉这个问题太抽象了。以下是一个无效的代码示例:

            $resInfo = new ResInfo();

    if($resInfo = saveResident()){
        http_response_code(201);
    }

    return true;

此处未设置响应代码。相反,它在PDO方法中设置saveResident()调用。

其他人有过类似的问题吗?

编辑:

我意识到saveResident()返回保存对象的副本而不是布尔值,所以我需要将对它的调用与保存对象分开:

    if(saveResident()){
        $resInfo = saveResident();
        http_response_code(201);
    }

1 个答案:

答案 0 :(得分:1)

如果你说:

  • 适用于saveResident()
  • saveResident()成功运行。
  • 并不是在if if声明之后。

我猜想saveResident会返回false,一个空数组或者什么都没有。毕竟不使用$resInfo