这些函数的行为受 php.ini 中的设置影响。
名字 | 默认 | 可修改范围 | 更新日志 |
---|---|---|---|
mssql.allow_persistent | "1" | PHP_INI_SYSTEM | |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM | |
mssql.max_links | "-1" | PHP_INI_SYSTEM | |
mssql.min_error_severity | "10" | PHP_INI_ALL | |
mssql.min_message_severity | "10" | PHP_INI_ALL | |
mssql.compatability_mode | "0" | PHP_INI_ALL | |
mssql.connect_timeout | "5" | PHP_INI_ALL | |
mssql.timeout | "60" | PHP_INI_ALL | Available since PHP 4.1.0. |
mssql.textsize | "-1" | PHP_INI_ALL | |
mssql.textlimit | "-1" | PHP_INI_ALL | |
mssql.batchsize | "0" | PHP_INI_ALL | Available since PHP 4.0.4. |
mssql.datetimeconvert | "1" | PHP_INI_ALL | Available since PHP 4.2.0. |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Available since PHP 4.3.0. |
mssql.max_procs | "-1" | PHP_INI_ALL | Available since PHP 4.3.0. |
mssql.charset | "" | PHP_INI_ALL | Available since PHP 5.1.2 when built with FreeTDS 7.0 or greater. |
pigochu at gmail dot com (2012-02-19 08:59:20)
If mssql.charset = "UTF-8" can't get UTF-8 string , u can use putenv() to set FREETDSCONF dynamic.
Brendon Crawford (2010-04-22 16:00:48)
Use this to check the runtime tds version...
<?php
/**
*
* Checks runtime tds version for freetds with mssql
*
* @author Brendon Crawford
* @see http://us.php.net/manual/en/mssql.configuration.php
* @param string $dbHost
* @param int $dbPort
* @param string $dbUser
* @param string $dbPass
* @return float
*
*/
function checkTdsVersion($dbHost, $dbPort, $dbUser, $dbPass) {
$cmd = sprintf(
'echo "version" | ' .
" tsql " .
" -H '%s' " .
" -p '%s' " .
" -U '%s' " .
" -P '%s' " .
" -o q | " .
"cut -d ' ' -f4 ",
escapeshellarg($dbHost),
escapeshellarg($dbPort),
escapeshellarg($dbUser),
escapeshellarg($dbPass)
);
$ver = (float)shell_exec($cmd);
return $ver;
}
?>
jakub dot otrzasek at marol dot com dot pl (2009-07-10 05:03:30)
mssql.charset "" PHP_INI_ALL
this setting is case sensitive, it can provide problms with connection to DB.
ini_set('mssql.charset', 'utf-8');
this setting this allowed me to connect.
ini_set('mssql.charset', 'UTF-8');
that one is ok.
regards!
ed at x-space dot net (2009-01-31 07:13:02)
Take care about mssql.max_procs = '-1'. It doesn't mean unlimited procs.
With the default driver, it's mean 25 procs.
See php.ini for more information.
If you're application is stress, mssql_connect may failed without adjustment.
valli at icsurselva dot ch (2008-09-04 03:28:15)
There also exists a configuration option called 'mssql.charset'.
It will override the 'client charset' setting in freetds.conf.
AFAIK this will only take effect if the 'tds version' setting
in freetds.conf is >=7.0