2015-06-02 1 views
0

У меня есть база данных, в которой хранятся команды. Каждое из этих имен команд уникально. В случае, если его называют командой Боба. Мне удалось успешно закодировать символы, когда они отправляются через запрос к следующему файлу. В этом файле я получаю сообщение об ошибке с SQL из-за апострофа, и я не знаю, как его исправить. Не совсем уверен во всем этом, что я читаю. Это довольно запутанно. Вот линия, вызывающая проблему:Как удалить файл с символами (В частности, апостроф)

strSQL = "SELECT * FROM Teams WHERE TeamName='" & TheTeamName & "'" 

В случае, если команда Боба - это имя команды. Ошибки я получаю:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'TeamName='Bob's Team''. 

/DeleteTeam.asp, line 35 

Я хотел бы знать, что я должен сделать для того, чтобы сделать это правильно удалить команду с апострофом (и, возможно, другими раздражающими символами) в нем.

+2

Узнайте о [Маленький Bobby Tables] (http://bobby-tables.com) –

+0

Добро пожаловать в SQL Injection (Сорта). Используйте параметризованные запросы. – Siyual

+0

Эта параматизированная вещь для меня совершенно новая. Я собираюсь вникать в это, но было бы неплохо, если бы кто-нибудь мог дать быстрое объяснение, возможно, применимый пример кода или ссылку на хороший сайт, который это делает. – Archael

ответ

0

Чтобы сделать работу запроса, как это вы можете попробовать следующее:

Заменить в TheTeamName одиночной кавычки 'от „“ Затем использовать его в запросе. (@least это работает в MySQL, но не уверен, что ваш механизм БД, но дайте ему попробовать).

Обратите внимание, что лучше использовать подготовленное заявление для предотвращения SQL инъекций

+0

То, что сегодня вечером, не очень выполнимо, поэтому я собираюсь попробовать это сейчас. Если вы не возражаете, не могли бы вы показать мне, в каком коде вы конкретно ссылаетесь? Вы предлагаете иметь его как команду Боба? – Archael

+0

Правильно, вы измените команду Боба на команду Боба. (Конечно, это было бы сделано программно, заменив в String TheTeamName одиночную цитату «на две»). – Vicky21

+0

Спасибо! Очень понравилось – Archael

Смежные вопросы