作者:鸡__腿孜然小朋友 | 来源:互联网 | 2014-05-28 16:07
php链接mssql2005或2008等高版本时,以前的php_mssql.dll已经不再适用,需要下载新的组件来实现,在http://www.php.net/manual/zh/ref.pdo-sqlsrv.php上有链接按钮,我选择了SQLSRV2.0,微软已经推出了3.0,但是我自己不熟悉也没空去研究到底有什么改
php链接mssql2005或2008等高版本时,以前的php_mssql.dll已经不再适用,需要下载新的组件来实现,在http://www.php.net/manual/zh/ref.pdo-sqlsrv.php上有链接按钮,我选择了SQLSRV
2.0,微软已经推出了3.0,但是我自己不熟悉也没空去研究到底有什么改变。
下载后解压里面的文件到php的扩展目录中,在php.ini中添加(我的php是5.3.8版)
extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll
SQLSRV 2.0是里面有几个dll文件,你需要查看你的php版本后作出对应的选择。
然后你在浏览器中查看phpinfo()看看,是不是看见
这一选项,如果看见了,证明pdo_sqlsrv可以启用了。
编写mssql的类:
class mssql{
private $host;
private $username;
private $password;
private $database;
private $handle;
private function __construct (Array
$config){
$this -> host =
$config['host'];
$this -> username =
$config['username'];
$this -> password =
$config['password'];
$this -> database =
$config['database'];
$this -> init();
}
private function init() {
$dsn = 'sqlsrv:server =
'.$this -> host.';database = '.$this->database;
$this -> handle = new
PDO($dsn,$this -> username, $this -> password);
}
public static function GetInstance(array $cOnfig= null) {
if (null == $config)
{
return NULL;
}
static $db = null;
if (null == $db) {
$c = __CLASS__;
$db = new $c($config);
};
return $db ->
handle;
}
}
这个类使用例子:
$cOnfig= array(
'host' => '192.168.1.191,1433',
'database' => 'oldskData',
'username' => 'sa',
'password' => '111111'
);
$mssql = mssql::GetInstance($config);
$result = $mssql->query('SELECT MAX(id) FROM sk_TryReport');
foreach($result as $row){
$id = $row[0];
}