Sql server 2012 with php

sqlsrv_connect

Opens a connection to a Microsoft SQL Server database. By default, the connection is attempted using Windows Authentication. To connect using SQL Server Authentication, include «UID» and «PWD» in the connection options array.

Parameters

The name of the server to which a connection is established. To connect to a specific instance, follow the server name with a backward slash and the instance name (e.g. serverName\sqlexpress).

An associative array that specifies options for connecting to the server. If values for the UID and PWD keys are not specified, the connection will be attempted using Windows Authentication. For a complete list of supported keys, see » SQLSRV Connection Options.

Return Values

A connection resource. If a connection cannot be successfully opened, false is returned.

Examples

Example #1 Connect using Windows Authentication.

$serverName = «serverName\\sqlexpress» ; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( «Database» => «dbName» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );

if( $conn ) echo «Connection established.
» ;
>else echo «Connection could not be established.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>

Example #2 Connect by specifying a user name and password.

$serverName = «serverName\\sqlexpress» ; //serverName\instanceName
$connectionInfo = array( «Database» => «dbName» , «UID» => «userName» , «PWD» => «password» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );

if( $conn ) echo «Connection established.
» ;
>else echo «Connection could not be established.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>

Example #3 Connect on a specified port.

$serverName = «serverName\\sqlexpress, 1542» ; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( «Database» => «dbName» , «UID» => «userName» , «PWD» => «password» );
$conn = sqlsrv_connect ( $serverName , $connectionInfo );

if( $conn ) echo «Connection established.
» ;
>else echo «Connection could not be established.
» ;
die( print_r ( sqlsrv_errors (), true ));
>
?>

Notes

By default, the sqlsrv_connect() uses connection pooling to improve connection performance. To turn off connection pooling (i.e. force a new connection on each call), set the «ConnectionPooling» option in the $connectionOptions array to 0 (or false ). For more information, see » SQLSRV Connection Pooling.

Читайте также:  Html function if then

The SQLSRV extension does not have a dedicated function for changing which database is connected to. The target database is specified in the $connectionOptions array that is passed to sqlsrv_connect. To change the database on an open connection, execute the following query «USE dbName» (e.g. sqlsrv_query($conn, «USE dbName»)).

See Also

  • sqlsrv_close() — Closes an open connection and releases resourses associated with the connection
  • sqlsrv_errors() — Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_query() — Prepares and executes a query

Источник

PHP
Использование SQLSRV

Драйвер SQLSRV является поддерживаемым Microsoft расширением PHP, которое позволяет вам обращаться к базам данных Microsoft SQL Server и SQL Azure. Это альтернатива для драйверов MSSQL, которые устарели от PHP 5.3 и были удалены с PHP 7.

Расширение SQLSRV можно использовать в следующих операционных системах:

  • Windows Vista с пакетом обновления 2 или более поздней версии
  • Windows Server 2008 с пакетом обновления 2 или более поздней версии
  • Windows Server 2008 R2
  • Windows 7

Для расширения SQLSRV требуется, чтобы собственный клиент Microsoft SQL Server 2012 был установлен на том же компьютере, на котором запущен PHP. Если основной клиент Microsoft SQL Server 2012 еще не установлен, щелкните соответствующую ссылку на странице документации «Требования» .

Чтобы загрузить последние версии драйверов SQLSRV, перейдите по ссылке: Загрузить

Полный список системных требований для драйверов SQLSRV можно найти здесь: Системные требования

Пользователи PHP7 могут загрузить последние версии драйверов от GitHub

Драйвер Microsoft® ODBC 13 для SQL Server поддерживает Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 (Preview), платформу Google Analytics, базу данных Azure SQL и хранилище данных Azure SQL.

Создание соединения

$dbServer = "localhost,1234"; //Name of the server/instance, including optional port number (default is 1433) $dbName = "db001"; //Name of the database $dbUser = "user"; //Name of the user $dbPassword = "password"; //DB Password of that user $connectionInfo = array( "Database" => $dbName, "UID" => $dbUser, "PWD" => $dbPassword ); $conn = sqlsrv_connect($dbServer, $connectionInfo); 

В SQLSRV также есть драйвер PDO. Для подключения с использованием PDO:

$conn = new PDO("sqlsrv:Server=localhost,1234;Database=db001", $dbUser, $dbPassword); 

Создание простого запроса

//Create Connection $conn = sqlsrv_connect($dbServer, $connectionInfo); $query = "SELECT * FROM [table]"; $stmt = sqlsrv_query($conn, $query); 

Примечание: использование квадратных скобок [] заключается в выходе из table слов, поскольку это зарезервированное слово . Они работают так же, как backticks ` делают в MySQL .

Вызов хранимой процедуры

Чтобы вызвать хранимую процедуру на сервере:

$query = ""; //Parameters '?' includes OUT parameters $params = array( array($name, SQLSRV_PARAM_IN), array($age, SQLSRV_PARAM_IN), array($count, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_INT) //$count must already be initialised ); $result = sqlsrv_query($conn, $query, $params); 

Создание параметризованного запроса

$conn = sqlsrv_connect($dbServer, $connectionInfo); $query = "SELECT * FROM [users] WHERE [name] = ? AND [password] = ?"; $params = array("joebloggs", "pa55w0rd"); $stmt = sqlsrv_query($conn, $query, $params); 

Если вы планируете использовать один и тот же запрос более одного раза, с разными параметрами, то же самое можно достичь с помощью sqlsrv_prepare() и sqlsrv_execute() , как показано ниже:

$cart = array( "apple" => 3, "banana" => 1, "chocolate" => 2 ); $query = "INSERT INTO [order_items]([item], [quantity]) VALUES(. )"; $params = array(&$item, &$qty); //Variables as parameters must be passed by reference $stmt = sqlsrv_prepare($conn, $query, $params); foreach($cart as $item => $qty) < if(sqlsrv_execute($stmt) === FALSE) < die(print_r(sqlsrv_errors(), true)); >> 

Получение результатов запроса

Существует 3 основных способа получения результатов запроса:

Читайте также:  My first Web page

sqlsrv_fetch_array ()

sqlsrv_fetch_array() извлекает следующую строку в виде массива.

$stmt = sqlsrv_query($conn, $query); while($row = sqlsrv_fetch_array($stmt)) < echo $row[0]; $var = $row["name"]; //. >

sqlsrv_fetch_array() имеет необязательный второй параметр для извлечения различных типов массивов: SQLSRV_FETCH_ASSOC , SQLSRV_FETCH_NUMERIC и SQLSRV_FETCH_BOTH (по умолчанию) ; каждый возвращает соответственно ассоциативные, числовые или ассоциативные и числовые массивы.

sqlsrv_fetch_object ()

sqlsrv_fetch_object() извлекает следующую строку в качестве объекта.

$stmt = sqlsrv_query($conn, $query); while($obj = sqlsrv_fetch_object($stmt)) < echo $obj->field; // Object property names are the names of the fields from the query //. > 

sqlsrv_fetch ()

sqlsrv_fetch() делает следующую строку доступной для чтения.

$stmt = sqlsrv_query($conn, $query); while(sqlsrv_fetch($stmt) === true) < $foo = sqlsrv_get_field($stmt, 0); //gets the first field - >

Получение сообщений об ошибках

Когда запрос идет не так, важно получить сообщение об ошибке, которое возвращается драйвером, чтобы определить причину проблемы. Синтаксис:

sqlsrv_errors([int $errorsOrWarnings]); 
ключ Описание
SQLSTATE Состояние, в котором находится драйвер SQL Server / OBDC.
код Код ошибки SQL Server
сообщение Описание ошибки

Обычно используется вышеуказанная функция:

$brokenQuery = "SELECT BadColumnName FROM Table_1"; $stmt = sqlsrv_query($conn, $brokenQuery); if ($stmt === false) < if (($errors = sqlsrv_errors()) != null) < foreach ($errors as $error) < echo "SQLSTATE: ".$error['SQLSTATE']."
"; echo "code: ".$error['code']."
"; echo "message: ".$error['message']."
"; > > >
  • Начало работы с PHP
  • APCu
  • BC Math (бинарный калькулятор)
  • Imagick
  • IMAP
  • JSON
  • Loops
  • PDO
  • PHP MySQLi
  • php mysqli affected rows возвращает 0, когда он должен возвращать положительное целое число
  • PHP Встроенный сервер
  • PHPDoc
  • PSR
  • SimpleXML
  • SQLite3
  • Streams
  • URL-адрес
  • UTF-8,
  • WebSockets
  • XML
  • YAML в PHP
  • Автозагрузка грунтовки
  • Альтернативный синтаксис для структур управления
  • Анализ HTML
  • Асинхронное программирование
  • Аутентификация HTTP
  • Безопасность
  • Буферизация вывода
  • Вклад в PHP Core
  • Внедрение зависимости
  • Внесение изменений в Руководство по PHP
  • Волшебные константы
  • Волшебные методы
  • Вывод значения переменной
  • Выполнение по массиву
  • Генераторы
  • закрытие
  • Защитите Remeber Me
  • Интерфейс командной строки (CLI)
  • Использование cURL в PHP
  • Использование MongoDB
  • Использование Redis с PHP
  • Использование SQLSRV
  • Итерация массива
  • Как определить IP-адрес клиента
  • Как разбить URL-адрес
  • Класс Datetime
  • Классы и объекты
  • Клиент SOAP
  • Комментарии
  • Компилировать расширения PHP
  • Компиляция ошибок и предупреждений
  • Константы
  • Контрольные структуры
  • криптография
  • кэш
  • локализация
  • Манипулирование массивом
  • Манипуляции заголовков
  • Массивы
  • Машинное обучение
  • Менеджер зависимостей композитора
  • Многопоточное расширение
  • многопроцессорная обработка
  • Монго-PHP
  • Область переменных
  • Обработка изображений с помощью GD
  • Обработка исключений и отчетов об ошибках
  • Обработка нескольких массивов вместе
  • Обработка файлов
  • Общие ошибки
  • операторы
  • отладка
  • Отправка электронной почты
  • отражение
  • переменные
  • Переменные Superglobal PHP
  • Печенье
  • Поддержка Unicode в PHP
  • Пространства имен
  • Работа с датами и временем
  • Развертывание докеров
  • Регулярные выражения (regexp / PCRE)
  • Рекомендации
  • Рецепты
  • Розетки
  • Сервер SOAP
  • Сериализация
  • Сериализация объектов
  • сессии
  • Соглашения о кодировании
  • Создание PDF-файлов в PHP
  • Спектакль
  • Строковый анализ
  • Структуры данных SPL
  • Тестирование устройства
  • Тип жонглирования и нерегулярные проблемы сравнения
  • Тип подсказки
  • Типы
  • Установка в средах Linux / Unix
  • Установка среды PHP в Windows
  • Фильтры и функции фильтра
  • Форматирование строк
  • функции
  • Функции хеширования пароля
  • Функциональное программирование
  • Черты
  • Чтение данных запроса
  • Шаблоны проектирования
Читайте также:  Подключение фавикона в html

Источник

Оцените статью