Php PDO设置服务器响应代码?

Php PDO设置服务器响应代码?,php,ajax,jquery,Php,Ajax,Jquery,我正在对我们使用的框架进行ajax查询。我无法设置服务器响应代码,除非在调用PDO execute方法的位置进行设置 该模式的工作原理如下: 运行一个ajax查询,将其发送到一个文件action.php,该文件验证输入。如果输入有效,我们调用业务逻辑(application.php)中的函数,然后调用底层PDO insert/save方法。如果我们得到了一个很好的保存,我们将在action.php函数中返回TRUE 在我的ajax调用中,我有一个.done()函数,它通过检查xhr.status

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

该模式的工作原理如下:

运行一个ajax查询,将其发送到一个文件action.php,该文件验证输入。如果输入有效,我们调用业务逻辑(application.php)中的函数,然后调用底层PDO insert/save方法。如果我们得到了一个很好的保存,我们将在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;
此处未设置响应代码。相反,它是在saveResident()调用的PDO方法中设置的

还有人有过类似的问题吗

编辑:

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

    if(saveResident()){
        $resInfo = saveResident();
        http_response_code(201);
    }
如果你说:

  • 它在
    saveResident()中工作
  • saveResident()
    成功运行
  • 而不是在if语句之后

我猜saveResident返回false、空数组或什么都没有<代码>$resInfo
毕竟不被使用。

为什么要使用赋值符号
=
$resInfo=saveResident()
而不是等号:
==
不应该是
$resInfo->saveResident()
?对不起,伙计们。有很多代码遗漏了,因为太多了,无法包含@Christian Bitoi,因为我实际上在那里调用函数,并希望$resInfo设置为其返回值。saveResident()是一个业务逻辑级别的方法,它调用ResInfo对象的setter,传入经过清理的$\u POST值,然后向下调用将对象属性写入相应数据库字段的PDO层。因此,您让我走上了正确的道路。saveResident()返回已保存对象的副本,而不是布尔值。我只需要将save调用和保存它的部分分开:$resInfo=newresinfo();if(saveResident()){$resInfo=saveResident();http_response_code(201);}