На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > о mysql_query() на заметку , баги с функциями mysql_*
      Нашел глюк. Думаю глюк в PHP, а не в MySQL, поэтому решил написать сюда. Сам голову сломал, пока чудом не разобрался в чем дело. Может кому-нибудь информация поможет...

      Дело в запросе, который используется в качестве параметра в функции mysql_query(). В руководстве написано, что в конце запроса НЕЛЬЗЯ писать ";". А на деле-то можно. Мне лично всегда было так удобней, пока не наткнулся на такую фигню:
      если переменную передавать в таком виде
      ExpandedWrap disabled
        "SELECT * FROM sometable;"
      - все работает отлично, но если передавать в виде
      ExpandedWrap disabled
        "SELECT * FROM sometable; "
      , то с версией php 4.3.2 и mysql 4.0.12(это у меня на локалке) все пучком, а с версией PHP 4.2 with GD и mysql 3.23.58(на серваке) - выдает ошибку.

      Точно не знаю, где баг, но нашел я его чудом, промучился весь день с этой гадкой опечаткой!

      Кстати, если знаете другие недоработки, связанные с mysql_*() функциями - просьба продолжить тему...
        Это во-первых зависит от версии предустановлнного мускл-сервера, версии ОС (по-моему) и еще фиг знает от чего, так что в руководстве абсолютно правильно написано - лучше не использовать символ ";" в запросах к серверу БД, ведь дораздо приятнее, когда все работает и главное - везде, верно? ;)
          Цитата
          shipbrother, 18.08.04, 14:29
          В руководстве написано, что в конце запроса НЕЛЬЗЯ писать ";". А на деле-то можно. Мне лично всегда было так удобней, пока не наткнулся на такую фигню:

          Вот потому и написано, что нельзя, что в некоторых случаях может не работать.

          ЗЫ: И где здесь глюк?
            Никакого практического смысла в точке с запятой нет, даже если бы они поддерживались во всех версиях. Смысл был бы, если бы ей можно было разделять запросы, но сама специфика функции mysql_query, как функции, возвращающей результат одного запроса, этого не позволяет. Так что пользуемся UNION, а точку с запятой оставим для сценариев SQL (.sql) и мониторов.
              Цитата
              Trustmaster, 18.08.04, 22:02
              Смысл был бы, если бы ей можно было разделять запросы, но сама специфика функции mysql_query, как функции, возвращающей результат одного запроса, этого не позволяет.

              Возможно в новых версиях появится возможность выполнения нескольких запросов...
                Цитата
                shipbrother, 18.08.04, 13:29
                В руководстве написано, что в конце запроса НЕЛЬЗЯ писать ";"

                Эт почему? Я писал и все оставалось на своих местах
                  Я тоже писал пока не напаролся. Лучше делать все по manual, хотя строчку эту я в нем не сразу приметил
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0282 ]   [ 15 queries used ]   [ Generated: 1.05.24, 12:38 GMT ]