PHP如何将函数中的对象var_dump写入数据库?

标签 php codeigniter

我使用 CodeIgniter,我在模型中有一个函数 createRecord:

public function createRecord($aRecordToSave) {
    $oLatestRecord = $this->getLatestRecord($aRecordToSave[$this->sForeignKey]);
    var_dump($oLatestRecord);
    $this->db->trans_begin();
    $this->db->where($this->sForeignKey, $aRecordToSave[$this->sForeignKey]);
    $this->db->update($this->sRecordsTable, array('latest' => 0));
  }

当仅通过在数据库中写入来执行函数并且页面通过单击保存立即从编辑重定向到显示 View 时,我如何显示 var_dump 输出?

最佳答案

如果你只想输出你的var_dump

的结果

var_dump 通常用在调试上下文中,而不是通常用于向用户上下文的反馈消息。

所以;如果您想将消息反馈给用户,最简单的方法是使用 $_SESSION 并使用 print_r() 转储 var .

因此:

public function createRecord($aRecordToSave) {
    ....
    $_SESSION['message'] = print_r($oLatestRecordSignature,true);
    ....
  }

将保存您的消息,然后您可以将代码添加到输出页面以显示消息,例如:

if(!empty($_SESSION['message'])){
     print $_SESSION['messge'];
     unset($_SESSION['message]);
}

如果你想记录你的var_dump的结果并停止执行

不同于print_r() , var_dump 不允许您选择数据的输出位置。

所以;如果要反馈消息进行调试,最简单的方法是使用 PHP errr_log 并转储 var。最好将内容存储在错误日志中,而不是简单地将错误输出到屏幕,因为您可以在每次执行更改代码时查看错误是如何演变的。

因此:

public function createRecord($aRecordToSave) {
    ....
    error_log(print_r($oLatestRecordSignature,true));
    error_log(print_r(debug_backtrace(),true); //optional but useful
    exit; // cease script execution. 
    ....
  }

然后您可以在错误日志中阅读此详细信息。

关于PHP如何将函数中的对象var_dump写入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47906673/

相关文章:

php - CodeIgniter Active Record集方法与MySQL函数SUBSTRING_INDEX

php - 多维数组中的 Foreach

php - Codeigniter,插入 ID

php - 如何查询 MySQL 表列最高条目并将其存储在变量中

php - 从最多 3 个不同的表请求 PDO 中的数据

php - 通过引用修改数组

php - Joomla 文章 alies 不工作

javascript - 使用 AJAX 调用在 PHP 文件之间发送 POST 参数

javascript - 当我在 codeigniter 中使用 jquery 发出警报时没有任何反应

php - 社交网站 IM/聊天系统的想法