powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Экранирование символов при запросах к mssql
17 сообщений из 17, страница 1 из 1
Экранирование символов при запросах к mssql
    #37477148
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше, при работе с MySQL я экранировал запросы к базе с помощью mysql_real_escape_string, но при работе с mssql это, конечно, невозможно.
Для экранирования я стал использовать mysql_escape_string, и всё вроде бы хорошо, но при добавлении кавычек в поля формы я получаю ошибки вроде таких:
Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark after the character string '113\\\''. (severity 15) in ...index.php on line 233

Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near '113\\\''. (severity 15) in ...index.php on line 233

Warning: mssql_query() [function.mssql-query]: Query failed in ...index.php on line 233

Warning: mssql_fetch_row(): supplied argument is not a valid MS SQL-result resource in ...index.php on line 234
Как видно, база не восприняла экранированные символы как простую строку и стала ругаться. В случае же с mysql всё проходило гладко и запрос выполнялся корректно, а кавычки были частью строки.

Внимание, вопрос: как экранировать спец символы для MsSQL, чтобы не получать ошибок синтаксиса?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37477215
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй pdo и параметры. или odbc и параметры. или микрософтовский драйвер и параметры
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37477357
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпараметры+1024
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37477367
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коннект к базе идёт через mssql_connect, где тем параметры соединения?
Извиняюсь за возможную тупизну вопроса.
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37477383
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mssql_bind
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37484062
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, собственно какие параметры использовать?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37484398
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы пример видели?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489170
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вас всё же не понял, но набредя на статью , решил вручную заменить кавычки на двойные, а % и _ заключить в скобки [].
Это безопасно?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489198
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет.
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489230
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tmin10Я вас всё же не понялВ указанном выше примере всего десяток строчек
какая конкретно строка непонятна?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489244
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял, что речь об этом примере, он там один:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?php
// Connect to MSSQL and select the database
 mssql_connect ('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
 mssql_select_db ('php');

// Create a new stored prodecure
$stmt =  mssql_init ('NewUserRecord');

// Bind the field names
 mssql_bind ($stmt, '@username',  'Kalle',  SQLVARCHAR,   false ,   false ,   60 );
 mssql_bind ($stmt, '@name',      'Kalle',  SQLVARCHAR,   false ,   false ,   60 );
 mssql_bind ($stmt, '@age',        19 ,       SQLINT1,      false ,   false ,    3 );

// Execute
 mssql_execute ($stmt);

// Free statement
 mssql_free_statement ($stmt);
?>

В нём создаются новая процедура и к ней привязываются имена полей, непонятно где вставлять сам мой запрос и как в нём могут заэкранироваться спецсимволы?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489314
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори как в нём могут заэкранироваться спецсимволы
автоматически.
пример левый. старый. сейчас это делается параметрическим запросом но эта библиотека их не держит.
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489659
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489727
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется начинаю понимать, все запросы к базе данных я должен выполнять не через mssql_query, а через mssql_init и mssql_bind? Причём честно не понимаю как с их помощью выполнить простейший SELECT или INSERT...

Страшно извиняюсь за своё невежество, мне очень неудобно перед вами, работаю в MsSQL совсем недавно и вовсе не по своей воле.
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37489803
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37495506
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я знаю про альтернативные способы подключения к БД, но необходимо использовать именно текущий, обеспечивает ли экранирование кавычек хотя бы видимость безопасности?
...
Рейтинг: 0 / 0
Экранирование символов при запросах к mssql
    #37715153
Tmin10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow http://www.microsoft.com/download/en/details.aspx?id=20098
Сервер стоит на убунте, это не поставить
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Экранирование символов при запросах к mssql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]