2016-12-14 8 views
1

Что является лучшим способом для создания соединения между PHP и SQL-сервером, которые являются отдельными? (Два сервера: сервер SQL и сервер b PHP). Обратите внимание, что я использую wamp.Связь между PHP и SQL-сервером с использованием новых атак APAP

Я читал некоторые статьи, как ниже, но я хочу знать, есть ли новая идея?

Я проверить это код, который работает отлично:

try{ 
    $user = 'user'; 
    $password = 'pass'; 
    $server="localhost";//or server IP 
    $database="database"; 
    $conn = odbc_connect("Driver={SQL Server};Server=$server;Database=$database;", $user, $password); 
} catch (PDOException $e) { 
    echo "Failed : " . $e->getMessage() . "\n"; 
    exit; 
} 
+1

Используйте PDO с соединительной строкой, которая настроена для подключения к любому серверу sql ... – Cagy79

+0

thanks @ Cagy79. пожалуйста, дайте мне ссылку для получения дополнительной помощи. – rezaSefiddashti

+0

Возможный дубликат [Подключение к SQL Server через PDO с использованием драйвера SQL Server] (http://stackoverflow.com/questions/12747554/connect-to-sql-server-through-pdo-using-sql-server-driver) – ICE

ответ

1

Я использую PDO_ODBC Метод:

1- Установите ODBC на сервере, который имеет WAMP и включить расширение PHP_PDO_ODBC на вашем WAMP

2- Используйте этот код, который поддерживает UTF-8:

try{ 
    $hostname = "IP"; 
    $dbname = "database"; 
    $username = "username"; 
    $pw = "password"; 

    $pdo = new PDO ("odbc:Driver={SQL Server Native Client 10.0};Server=$hostname;Database=$dbname; Uid=$username;Pwd=$pw;"); 

} catch (PDOException $e) { 
    echo "Failed : " . $e->getMessage() . "\n"; 
    exit; 
} 

$query = $pdo->prepare("select field_name from table"); 
$query->execute(); 

for($i=0; $row = $query->fetch(); $i++){ 
    echo iconv("CP1256","UTF-8", $row['field_name'])."<br>"; 
} 

3- заменить эти товары своими:

IP-database-username-password-field_name-table

4 иногда вам нужно использовать «SQL SERVER» вместо «SQL Server Native Client 10.0», а иногда вам нужно использовать «IP, порт» вместо «IP», а иногда вам нужно использовать «ISO-8859-6» вместо "CP1256".

+0

Спасибо. хорошая идея – rezaSefiddashti

1

Из PHP инструкции: http://php.net/manual/en/pdo.construct.php

Пример # 1 Создание экземпляра PDO с помощью вызова драйвера

<?php 
/* Connect to a SQL Server database using driver invocation */ 
$dsn = "sqlsrv:Server=12345abcde.database.windows.net;Database=testdb", "[email protected]", "Password"; 

try { 
    $dbh = new PDO($dsn); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 

?> 

Просто измените HOST ip на IP и порт вашего сервера mysql.

+0

Спасибо. У меня есть вопрос: вы подключаетесь к mysql? Я хочу подключиться к серверу sql. – rezaSefiddashti

+0

Процедура для Microsoft SQL Server похожа на PDO, однако DSN отличается. Взгляните на документацию для соединений PDO с MSSQL: http://php.net/manual/en/ref.pdo-sqlsrv.connection.php – Striezel

+0

thanks @Striezel – rezaSefiddashti