所以我有一个奇怪的问题。在PHP中,我运行数据库,并在每个数据库上使用PDO执行一些查询。一切都很正常,但是当数据库名称的长度大于27,我有一个错误:PDO:数据库名称的长度太长
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;
}
...
}
新的SQL Server数据库名称被存储为'是一样的'为nvarchar(128)'所以你应该能够有SYSNAME'数据类型数据库名称最多为'128'字符。较旧的数据库,它曾经是'varchar(30)' – 2014-03-19 17:46:24
你的db的名字是什么?也许它有一个不应该在那里的角色。 – Duniyadnd
不,我检查的字符都很好 例如:amstedindustrie_60_amstedindustrie_sp_dev – TroyAndAbed