|
|
|
Не пойму кое-что в функции mysql_escape_string. Часть 1.
|
|||
|---|---|---|---|
|
#18+
Greetings. Занятную проблему нашел я себе на задницу. Такую: Пишу интерфейс на VC++ 7.0 для базы данных, находящейся под MySQL 4.0.15a. С базой контактирую используя ODBC. В одну из таблиц надо грузить картинки (*.jpg, *.gif). Вскочил вопрос - cock? Шить к проге библиотеку libmySQL.dll ради одной единственной функции mysql_escape_string() не хочется. Да и пришьется ли она? Полез на www.mysql.com, скачал исходник Мускула и нашел в нем реализацию упомянутой функции. Служит она, как Вы наверное знаете, для экранирования в буфере опасных символов, перед отправкой его содержимого в BLOB-поле таблицы. Вот она: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Прежде всего, функция работает прекрасно. Но кое-что в ее реализации меня настораживает. А именно: 1. Зачем может понадобиться в каждой итерации цикла for узнавать значение флага use_mb_flag ? if (use_mb_flag && (l = my_ismbchar(charset_info, from, end))) Он устанавливается один раз в начале функции и значения больше не меняет. 2. Почему не прослешиваются многобайтовые символы? Что если частью многобайтового символа окажется \0 или \ или ' и т.п. ? Это, собственно, еще не проблема. Проблема будет позже :) Сначала, мне хотелось бы услышать Ваше мнение на эти два вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 06:22 |
|
||
|
|

start [/forum/search_topic.php?author=Gerbilin&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 439ms |
| total: | 614ms |

| 0 / 0 |
