Переменные в MySQL из PHP?

Discussion in 'PHP' started by Mixon, 6 Oct 2011.

  1. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    В общем сделал такой запрос к MySQL:

    Code:
    SET @rank:=0;
    SELECT rank,id,votes,uid
    FROM (
      SELECT *,@rank:=@rank+1 AS rank
      FROM users
      ORDER BY votes DESC
    ) t1
    ORDER BY
    CASE id
    WHEN 67577 THEN 1
    ELSE 2
    END,glavnui DESC
    LIMIT 0,30
    
    из под phpMyAdmin - он выполняется прекрасно, потому-как в нём есть параметр Delimiter = ;
    Но вот как мне его запустить из пхп скрипта (создать переменную через SET, если это отдельная операция, а mysql_query этого не поддерживает)

    Полтора часа гугла мне дало лишь фразы "Это консольный MySQL, из пхп он не доступен (хмм, а вот phpMyAdmin - тоже пхп, и что??? работает-ведь...)", "Юзай процедуры (делал, с phpMyAdmin норм а с пхп - тоже ошибки)"

    Вопрос - как создать переменную или сделать аналог данному скрипту, но который будет запускаться из mysql_query?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Mixon http://ru.php.net/mysql_connect последний параметр установить в значение 65535.

    Либо разбейте ваш запрос на два

    Также напоминаю, что расширение mysql помечено как deprecated и рекомендуется использовать расширения mysqli и PDO
     
    _________________________
  3. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Сейчас попробую, но что-то не оч понятно что это даст

    А сессия сохранится? т.е. значение данной переменной для следующего запроса?

    эмм, ну это совсем не понял...(
     
  4. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Вот чёрт, я жёстко тупонул=(

    Думал что это нужно выполнить только за 1 запрос, т.е. как в eval, что раньше выполнялось то раньше, а это - теперь... а тут - сессия...
    Gifts спасибо, вопрос закрыт, разбил на 2 запроса=)
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Это позволит выполнять несколько запросов в рамках одного mysql_query разделенных точкой с запятой. Правда что будет если используется селект - хз

    Это значит что в ближайшем будущем надо отказаться от всех функций начинающихся на mysql_ и использовать http://ru.php.net/mysqli и http://ru.php.net/PDO
     
    _________________________
  6. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Mixon, если интересно, я писал не так давно небольшой пример с использованием PDO, можно с него начать знакомство - /showpost.php?p=2838271&postcount=4