如何在Yii中打印sql字符串?

gwbalxhn  于 2022-11-09  发布在  其他
关注(0)|答案(4)|浏览(113)

我正在使用yii框架来实现一个新项目。我想在sql字符串在服务器上运行之前看到它。我已经在我的配置文件中启用了这段代码,但是我仍然没有得到任何结果

array('class'=>'CWebLogRoute',),

当我运行网页时,我应该确切地做些什么来查看sql字符串?

ncgqoxb0

ncgqoxb01#

试着把这个放在main.php(config)的组件下:

'log'=>array(
    'class'=>'CLogRouter',
    'routes'=>array(
        'weblogging'=>array(
            'class'=>'CWebLogRoute',
            'enabled'=>true,
            ),
        ),
    ),

那么它将显示调试信息沿着在该页面上运行的所有sql。

bwitn5fc

bwitn5fc2#

您可以使用简单的logger将您的字符串记录到文件中:

$file = fopen("my.log", "a+");
fwrite($file, $logString."\r\n");
fclose($file);
p5fdfcr1

p5fdfcr13#

配置数组有一个components的键,在其中你必须添加log组件,在log中你应该声明CWebLogRoute为路由,你还必须声明preloadlog组件。
最小示例(* 项目名称/protected/config/main.php*):

return array(
    // other configurations
    // ...

    // preloading 'log' component
    'preload'=>array('log'), // this is also necessary

    // ...
    'components'=>array(
        // other components
        // ...

        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CWebLogRoute'
                ),
                // ... other routes ...    
            )
        ),

        // ...
    )

);

阅读the guide了解更多关于日志记录的提示。

jv2fixgn

jv2fixgn4#

config/main.php中,在db数组之后添加如下内容:

'db'  => array(
 //your db array listing
),
//add following
'log' => array(
    'class'=>'CLogRouter',
    'routes'=>array(
        array(
            'class'=>'CFileLogRoute',
            'levels'=>'error, warning',
        ),
        array(
            'class'=>'CWebLogRoute',
            'levels'=>'trace',
            'categories'=>'system.db.*',
        ),

    ),
)

相关问题