PHP5.4連接sqlserver


1.下載微軟的php連接驅動:SQLSRV30.EXE(5.4對應,后面的native client要用2012)/SQLSRV20.EXE(5.3對應,native client要用2008)/SQLSERV31.EXE對應5.5

2.解壓SQLSERV30.EXE,拷貝對應extension到php的ext目錄

3.配置php.ini

extension=php_sqlsrv_54_ts.dll(54為5.4版本,ts為線程安全,nts為非線程安全,帶pdo的是用pdo方式連接,sqlsrvxx.exe里都有)

mssql.secure_connection = Off改為on 很多教程沒寫這個

4.重啟IIS/Apache

5.在sqlserver服務器配置TCP/IP連接

6.在php服務器下載安裝sqlserver native client(2014.11.13補充:win8下裝上這玩意http://www.microsoft.com/en-us/download/details.aspx?id=20098)

7.測試代碼

 

$database = "TimeTracker";
$uid = "sa";
$pwd = "123";
$Server = "192.168.0.152";
$conInfo=array('Database'=>$database,'UID'=>$uid,'PWD'=>$pwd);
$link=sqlsrv_connect($Server,$conInfo);

if( $link ){
    // echo "Connection established.\n";
    $query = 'SELECT * FROM T_Sys_UserInfo';

    /* Set parameter values. */
    $params = array(75123, 5, 741, 1, 818.70, 0.00);

    /* Prepare and execute the query. */
    $stmt = sqlsrv_query( $link, $query, $params);
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
    {
        echo $row['UseName'].", ".$row['RealName']."\n";
    }

}
else{
    //echo "Connection could not be established. ";
    print_r( sqlsrv_errors(), true);
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
    die("");
}

 

 

 

 PDO方式連接:

<?php
header("Content-Type: text/html;charset=utf-8");

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.0.152,1433',
    'database' => 'TimeTracker',
    'username' => 'sa',
    'password' => '123'
);
$mssql = mssql::GetInstance($config);
$result = $mssql->query('SELECT * FROM T_Sys_UserInfo');
foreach($result as  $row){
    echo $row[2];
}
?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM