如何在yii中打印我的sql字符串?

时间:2012-11-12 08:39:52

标签: php yii

我使用yii框架来实现新项目。 我希望在服务器上运行之前看到sql字符串。 我已在配置文件中启用了此代码,但仍然没有结果

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

在运行网页时,我应该怎么做才能查看sql字符串?

4 个答案:

答案 0 :(得分:2)

尝试将它放在main.php(config)中的组件下:

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

然后它将显示调试信息以及该页面上运行的所有sql。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

config / main.php 中,在db array add之后添加:

'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.*',
        ),

    ),
)

希望有所帮助

答案 3 :(得分:1)

配置数组有components的密钥,您必须添加log组件,并且在log内您应该将CWebLogRoute声明为路线。您还必须preload log组件。

最小示例( project-name / 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了解有关日志记录的更多提示。