Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Экранирование символов при запросах к mssql / 17 сообщений из 17, страница 1 из 1
11.10.2011, 13:58:16
    #37477148
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Раньше, при работе с 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
11.10.2011, 14:18:43
    #37477215
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
используй pdo и параметры. или odbc и параметры. или микрософтовский драйвер и параметры
...
Рейтинг: 0 / 0
11.10.2011, 15:18:00
    #37477357
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
ScareCrowпараметры+1024
...
Рейтинг: 0 / 0
11.10.2011, 15:21:48
    #37477367
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Коннект к базе идёт через mssql_connect, где тем параметры соединения?
Извиняюсь за возможную тупизну вопроса.
...
Рейтинг: 0 / 0
11.10.2011, 15:28:09
    #37477383
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
mssql_bind
...
Рейтинг: 0 / 0
16.10.2011, 13:22:48
    #37484062
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Да, собственно какие параметры использовать?
...
Рейтинг: 0 / 0
16.10.2011, 22:28:41
    #37484398
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Вы пример видели?
...
Рейтинг: 0 / 0
19.10.2011, 16:07:25
    #37489170
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Я вас всё же не понял, но набредя на статью , решил вручную заменить кавычки на двойные, а % и _ заключить в скобки [].
Это безопасно?
...
Рейтинг: 0 / 0
19.10.2011, 16:24:14
    #37489198
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
нет.
...
Рейтинг: 0 / 0
19.10.2011, 16:34:32
    #37489230
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Tmin10Я вас всё же не понялВ указанном выше примере всего десяток строчек
какая конкретно строка непонятна?
...
Рейтинг: 0 / 0
19.10.2011, 16:39:12
    #37489244
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Я так понял, что речь об этом примере, он там один:
Код: 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
19.10.2011, 17:08:01
    #37489314
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
автори как в нём могут заэкранироваться спецсимволы
автоматически.
пример левый. старый. сейчас это делается параметрическим запросом но эта библиотека их не держит.
...
Рейтинг: 0 / 0
19.10.2011, 21:14:45
    #37489659
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
...
Рейтинг: 0 / 0
19.10.2011, 22:24:42
    #37489727
Tmin10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов при запросах к mssql
Кажется начинаю понимать, все запросы к базе данных я должен выполнять не через mssql_query, а через mssql_init и mssql_bind? Причём честно не понимаю как с их помощью выполнить простейший SELECT или INSERT...

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


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