Я работаю над веб-приложением, которое должно подключаться через 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';
Какой драйвер вы с помощью? Официальные Microsoft (http://www.microsoft.com/en-us/download/details.aspx?id=20098)? Получаете ли вы какие-либо сообщения об ошибках, можете ли вы опубликовать их в своем вопросе? – Kev
Также интересно узнать, почему вы используете XAMPP на сервере IIS, учитывая, что PHP является гражданином первого класса в Windows 2008+. – Kev
это ошибка, которую я обновляю на своей странице: Неустранимая ошибка: исключение исключения «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