如何在codeigniter模型中打印SQL语句

Tec*_*upe 102 php sql codeigniter

我的模型中有一个sql语句,

然后我说

$query = $this->db->query($sql, array(fields, fields1);

if ($query) {
    return true:
} else {
    echo "failed";
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我的查询总是失败,如何让php打印发送到我的数据库的确切sql语句?并在我的php视图,页面上显示

chh*_*eed 225

你可以用这个:

$this->db->last_query();
Run Code Online (Sandbox Code Playgroud)

"返回最后运行的查询(查询字符串,而不是结果)."

Reff:https://www.codeigniter.com/userguide3/database/helpers.html


Nov*_*ovo 104

要显示查询字符串:

print_r($this->db->last_query());    
Run Code Online (Sandbox Code Playgroud)

要显示查询结果:

print_r($query);
Run Code Online (Sandbox Code Playgroud)

Profiler类将显示基准测试结果,您运行的查询以及页面底部的$ _POST数据.要启用探查器,请将以下行放在Controller方法的任何位置:

$this->output->enable_profiler(TRUE);
Run Code Online (Sandbox Code Playgroud)

分析用户指南:https: //www.codeigniter.com/user_guide/general/profiling.html

  • 当我做print_r($ query); 什么都没打印出来 (6认同)
  • 我想要做的就是打印出传递给数据库的sql语句,但是分析器也没有帮助 (2认同)

ped*_*dro 39

您可以显示ActiveRecord生成的SQL:

在查询运行之前:

$this->db->_compile_select(); 
Run Code Online (Sandbox Code Playgroud)

运行之后:

$this->db->last_query(); 
Run Code Online (Sandbox Code Playgroud)

  • 当我使用$ this-> db - > _ compile_select(); 我得到致命错误:从中调用受保护的方法CI_DB_active_record :: _ compile_select() (4认同)
  • 在CI3中,请使用`$ this-> db-> get_compiled_select()`. (3认同)

小智 17

如果您需要对查询进行快速测试,这对我来说非常有用

echo $this->db->last_query(); die;
Run Code Online (Sandbox Code Playgroud)


Chr*_*ery 13

尝试没有成功使用_compiled_select()get_compiled_select()我只是打印db对象,你可以在queries属性中看到那里的查询.

亲自尝试一下:

var_dump( $this->db );
Run Code Online (Sandbox Code Playgroud)

如果您知道只有一个查询,则可以直接打印:

echo $this->db->queries[0];
Run Code Online (Sandbox Code Playgroud)


Muh*_*diq 9

你可以在最后使用它.

echo $this->db->last_query();
Run Code Online (Sandbox Code Playgroud)


Nav*_*eed 8

有一个新的公共方法get_compiled_select可以在运行之前打印查询._compile_select现在受到保护,因此无法使用.

echo $this->db->get_compiled_select(); // before $this->db->get();
Run Code Online (Sandbox Code Playgroud)

  • 致命错误:调用未定义的方法CI_DB_mysql_driver :: get_compiled_select() (4认同)