2014-01-17 6 views
1

Я работаю над веб-приложением, которое должно подключаться через PHP & PDO to MS SQL 2008 R2. я успешно установил драйверы, а также проверили его с:Подключение к серверу SQL 2008 R2 через XAMPP

var_dump(PDO::getAvailableDrivers()); 

Я использую два сервера Windows (оба 2008) один для базы данных SQL, а другой для XAMPP. У нас около восьми программ, которые подключены к SQL-серверу с других серверов, поэтому я предполагаю, что проблема соединения не является самим SQL-сервером.

Здесь у вас есть очень простой пример, чтобы вставить в таблицу базы данных MS SQL из приложения:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){  
$company  = $_POST['company'];  
$name   = $_POST['name']; 
$firstname  = $_POST['firstname']; 
$number   = $_POST['number'];  
$host   = $_POST['host']; 
$licenseplate   = $_POST['plate']; 
$reason   = $_POST['site']; 
$timein   = date('Y-m-d H:i:s'); 

$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
$sql = "INSERT INTO visitors (visitor_name, visitor_firstname, visitor_company, visitor_number, visitor_plate, visitor_in) VALUES (:lname, :fname, :company, :pnumber, :lplate, :tin)";  
$q = $db->prepare($sql);  
$q->execute(array(':lname'=>$name, ':fname'=>$firstname, ':company'=>$company, ':pnumber'=>$number, ':lplate'=>$licenseplate, ':tin'=>$timein)); 

Вот некоторые дополнительные сведения:

Имя хоста сервера SQL (имя_компьютера сама) = SQLSERVER

Название SQL SERVER (под SQL Server Management Studio = Где подключиться к) = MSSQLSERVER2

Вот мои вопросы:

Я не смог успешно подключиться к базе данных моя догадка связанные с ним это

$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************"); 

Здесь я использую Server=MSSQLSERVER2, но это только имя сервера в сервере SQL студия управления. Нигде я не указываю на сам сервер, возможно, это моя проблема, и мне нужно подключение ODBC? Я читал в Интернете, что просто необходимо в среде Linux?

Может кто-нибудь помочь и объяснить мне, что я делаю неправильно? Нужно ли мне делать дополнительную связь?

Последний вопрос, который я хотел бы задать, где я могу посмотреть, с каким номером порта я должен подключиться?

т.е.

new PDO("sqlsrv:Server=MSSQLSERVER2,1433; 

Это ошибка я получаю на моей странице:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=163712';

+0

Какой драйвер вы с помощью? Официальные Microsoft (http://www.microsoft.com/en-us/download/details.aspx?id=20098)? Получаете ли вы какие-либо сообщения об ошибках, можете ли вы опубликовать их в своем вопросе? – Kev

+0

Также интересно узнать, почему вы используете XAMPP на сервере IIS, учитывая, что PHP является гражданином первого класса в Windows 2008+. – Kev

+0

это ошибка, которую я обновляю на своей странице: Неустранимая ошибка: исключение исключения «PDOException» с сообщением «SQLSTATE [IMSSP]: для этого расширения требуется, чтобы драйвер ODBC собственного клиента Microsoft SQL Server 2012 взаимодействовал с SQL Server. Получите следующий URL-адрес, чтобы загрузить драйвер ODBC для собственного клиента Microsoft SQL Server 2012 для x86: http://go.microsoft.com/fwlink/?LinkId=163712 '. Причина, по которой я использую Xampp, состоит в том, что на IIS на этом же сервере уже работают 2 экземпляра + мои знания IIS не так много – Raz3rt

ответ

1

Ключ к решению вашей проблемы находится в сообщении об ошибке:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=163712';

Было бы что у вас нет установленных драйверов Native Client SQL Server.

Просмотр по этому адресу:

Microsoft® SQL Server® 2012 Feature Pack

прокрутки вниз, пока не увидите:

Microsoft® SQL Server® 2012 Native Client

Скачать и запустить программу установки X86 Пакет (http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409)

+0

Это серьезно меня убило ... Я установил собственный клиент и теперь получаю следующую ошибку: Fatal error : Исключить исключение «PDOException» с сообщением «SQLSTATE [08001]: [Microsoft] [Собственный клиент SQL Server 11.0] Поставщик TCP: (перевод) Не удается подключиться к компьютеру, потому что соединение отклонено. Я думаю, что я знаю, где моя проблема, TCP/IP включен на моем сервере sql, но в моих свойствах TCP/IP на моем SQL-сервере нет выделенного TCP-порта. Это похоже на то, что кто-то просит меня летать на самолете прямо сейчас без каких-либо знаний ... – Raz3rt

+0

@ user3107003 - Является ли это сервером SQL, работающим локально на вашей рабочей станции? – Kev

+0

@ user3107003 - Вы когда-нибудь решали это? Кажется, я решил вашу первую проблему, поэтому, возможно, галочку в коробке заслуживает. Другая проблема - это отдельный вопрос. – Kev

Смежные вопросы