![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
PEAR连接数据库时用的DSN格式:
* phptype://username:password@protocol+hostspec:110//usr/db_file.db
* phptype://username:password@hostspec/database_name
* phptype://username:password@hostspec
* phptype://username@hostspec
* phptype://hostspec/database
* phptype://hostspec
* phptype(dbsyntax)
* phptype
但是用来连接ODBC时这种格式是错误的,请看下面PEAR中的这段代码:
$dbhost = $dsninfo['hostspec'] ? $dsninfo['hostspec'] : 'localhost';
$user = $dsninfo['username'];
$pw = $dsninfo['password'];
if ($this->provides('pconnect')) {
$connect_function = $persistent ? 'odbc_pconnect' : 'odbc_connect';
} else {
$connect_function = 'odbc_connect';
}
$conn = @$connect_function($dbhost, $user, $pw);
显然把DSN当成host了,所以根本无法连接。连接ODBC时的DSN应该是类似“driver={SQL Server};server=localhost;database=test”的格式,而不是简单的主机名。请大家发表意见

