SQL Server 2005 karşı php aşımına uğruyor

2 Cevap php

Ben PHP için MS sürücüsünü kullanarak ve zaman çıktısı alma SQL server 2005 karşı komut satırından bir php komut dosyası koşuyorum. Sorgu, SQL Server Management Studio yaklaşık 2 dakika sürer ve> 300.000 satırlar döndürür.

Komut ve her biri ben mi bir sqlsrv_connect(), sorguyu çalıştırmak ve ardından sqlsrv_free_stmt() ve sqlsrv_close() için birden fazla sorgu var

sqlsrv_errors(): çıkışı

Array
(
    [0] => Array
        (
            [0] => 08S01
            [SQLSTATE] => 08S01
            [1] => 258
            [code] => 258
            [2] => [Microsoft][SQL Native Client]Shared Memory Provider: Timeout error [258]. 
            [message] => [Microsoft][SQL Native Client]Shared Memory Provider: Timeout error [258]. 
        )
    [1] => Array
        (
            [0] => 08S01
            [SQLSTATE] => 08S01
            [1] => 258
            [code] => 258
            [2] => [Microsoft][SQL Native Client]Communication link failure
            [message] => [Microsoft][SQL Native Client]Communication link failure
        )
    [2] => Array
        (
            [0] => 08S01
            [SQLSTATE] => 08S01
            [1] => 0
            [code] => 0
            [2] => [Microsoft][SQL Native Client]Communication link failure
            [message] => [Microsoft][SQL Native Client]Communication link failure
        )
)

2 Cevap

SQL Server 2005 ve PHP Microsoft sürücüsü kullanarak konuşmak için almak çok şans yoktu, ama PDO's ODBC driver ile iyi çalıştı. Bu denemeye değer olabilir.

Basit Bağlantı:

$host     = '1.2.3.4';
$port     = '1433';
$database = 'MyDatabase';
$user     = 'MyDatabaseUser';
$password = 'MyDatabasePassword';

$dsn = "odbc:DRIVER={SQL Server};SERVER=$server,$port;DATABASE=$database";

try {
  // connect
  $conn = new PDO($dsn,$user,$password);
} catch (PDOException $e) {
  // fancy error handling
}

I düşünebilirsiniz şeyler çift.

Veritabanı sunucusunda uzak bağlantılara izin MS SQL kurdunuz? Eğer değilse bunu yapmak gerekir.

İkincisi Named Pipes veya TCP / IP kullanıyorsanız?