PDO:数据库名称的长度太长

时间:2014-03-19 17:42:39

标签: php sql-server-2008

所以我有一个奇怪的问题。使用PHP,我运行数据库,并在每个数据库上使用PDO进行一些查询。一切都很好但是当数据库名称的长度大于27时,我有一个错误:

SQLSTATE[HY000] 
General SQL Server error: Check messages from the SQL Server. 
(severity 5)

我不知道这只是一个巧合,但有90个数据库,我只针对那些大于27的人有这个问题。

您是否了解问题以及如何解决问题?我还没有找到类似问题的事情。

class BD_TEST {
…

private function __construct(){}
private function __clone(){}
private function __destruct(){
    self::$oDB_main = null;
    self::$oDB_error = null;
}

public static function getInstance() {
    …


    if (!self::$oDB_main) {
        try {
            //Error in the next line
            self::$oDB_main = new PDO("mssql:host=".$prj_server.",".$prj_port.";dbname=[".$prj_datasource."]",$prj_user,$prj_pass);
            self::$oDB_main->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }catch (Exception $e) {echo($e."<br>Impossible to connect to [".$prj_datasource."] on ".$prj_server.":".$prj_port." with the user ".$prj_user."\n\n ".$e->getMessage());exit(0);}
    }
    return self::$oDB_main;


}

...

}

1 个答案:

答案 0 :(得分:0)

也许没有实际问题:

Messages with a severity level of 0 to 10 are informational messages and not actual errors.

来源: http://blog.sqlauthority.com/2007/04/25/sql-server-error-messages-sysmessages-error-severity-level/

如果您认为情况正常,则可能需要通过关闭错误报告来取消错误消息。


更新:您说您的程序崩溃且错误消息没有意义。

  1. 将error_reporting设置为高,看看PHP是否会更好地咳嗽。
  2. 检查PHP,服务器和SQL Server的日志文件