В этом посте вы можете найти ответы на несколько наиболее часто
задаваемых вопросов от PHP разработчиков, использующих драйвер для
SQL Server. Поскольку эти вопросы поступают достаточно часто, я
решил сделать пост в блоге на который давать ссылку.
1. Как установить и настроить драйвер SQL Server для
PHP?
Самый простой способ - воспользоваться Web Platform
Installer. Подробно ручной процесс установки, а также
использование драйвера описаны в
статье на сайте MSDN.
2. Нам необходимо руководство по миграции базы данных
MySQL на SQL Server, поскольку в MySQL многие вещи отличаются от
SQL Server.
Подробное руководство по миграции с MySQL на SQL Server
расположено по ссылке -
Guide to Migrating from MySQL to SQL Server 2008 (англ.)
3. Есть ли возможность автоматизировать процесс миграции
базы данных MySQL в SQL Server.
Для автоматизации процесса миграции доступен специальный
инструмент -
Microsoft Sql Server Migration Assistant for MySQL. На русском
языке есть
отличная статья по использованию этого инструмента.
4. В MySQL можно создать индекс на поля BLOB и TEXT,
включив в него только первые несколько символов, как это сделать в
SQL Server.
Ответ на этот и похожие вопросы есть в руководстве, упомянутом
выше. Решение простое - создать вычисляемое полу (computed column),
которое будет содержать нужное количество символов, и уже по этому
полю построить индекс.
5. Драйвер не предоставляет аналога функции string
mysql_real_escape_string ( string $unescaped_string [, resource
$link_identifier ] ), что использовать?
Поскольку эта функция используется для защиты от SQL-инъекции,
при использовании драйвера для SQL Server рекомендуется
использовать параметризованные запросы вместо "экранирования"
потенциально опасных символов.
Пример запроса:
$query = "SELECT * FROM Users WHERE Username = ? and Password =
?";
Выполнение запроса с параметрами:
$params = array($_POST['Username'], $_POST['Password']);
$result = sqlsrv_query($con, $query, $params);
Подробно использование параметризованных запросов
описано в блоге Брайана Свона.
6. Драйвер не предоставляет ...