За последние 24 часа нас посетили 17878 программистов и 1600 роботов. Сейчас ищут 886 программистов ...

Константа заместо строки запроса в MySQL

Тема в разделе "PHP и базы данных", создана пользователем Web_LaMeR, 17 дек 2010.

  1. Web_LaMeR

    Web_LaMeR Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, помогите пожалуйста.
    Вобщем хочу определить в константах
    параметры подключения к базе данных в файле обработчике, у меня много функций которые вызываются по мере необходимости и во многих из них есть какие либо запросы в БД MySQL определять в переменных а потом прописывать их как глобал, выход конечно но мне кажется что в константах будет как то проще и красивее чтоли, к тому же константы имеют глобальную область видимости, вобщем посмотрите пример что я хочу зделать.

    define("SERVER","localhost"); // Константы подключения к Базе Данных
    define("USER", "user");
    define("PASSWD", "12345");

    $result = mysql_query("SELECT * FROM (тут хочу поставить константу) WHERE user_login ='{$str_1}'", $id_connect);

    пробовал по разному, в инете искал но ничего не нашол, с переменными отлично работает.

    Вобщем подскажите пожалуйста как там надо указывать что это именно константа а не строка запроса,
    и как вы вобще находите этот способ передачи ? может есть лучше, элегантней ?

    PS: Прошу не посылать в Гугль я только оттуда )
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    видел в мануале недавно что то похожее
    PHP:
    1. <?php
    2. define('TABLE', 'test');
    3. function getConst($var){
    4.     return $var;
    5. }
    6. $functionName = 'getConst';
    7.  
    8. echo "SELECT * FROM `{$functionName(TABLE)}`";
    9. ?>
    10.  
    а вообще чем конкатенация не устраивает?
     
  3. Web_LaMeR

    Web_LaMeR Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    3
    Симпатии:
    0
    Сорри никак не пойму как конкатенацию использовать в моём случае можно

    $a .=TABLE;

    $result = mysql_query("SELECT * FROM {$a} WHERE user_login ='{$str_1}'", $id_connect);

    я себе это так представил.

    я хочу вот так чтоб было примерно

    $result = mysql_query("SELECT * FROM TABLE WHERE user_login ='{$str_1}'", $id_connect);

    где TABLE это константа и никакого лишнего кода и константы видимы во всех функциях и больше я их вобще не трогаю,
    а при переносе допустим на другой хостинг просто в файле обработчике правлю пару строк где идёт определение и всё.

    Проверил с функцией не работает ошибку выдаёт.
    Вы проверяли ? у вас работает ?
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    загуглил и попал на хабр? :D там тухлый топик и это notice
    PHP:
    1. <?php
    2. mysql_query("SELECT * FROM ".TABLE." WHERE user_login ='{$str_1}'", $id_connect);
     
  5. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    А если так?

    $result = mysql_query("SELECT * FROM " . TABLE . " WHERE user_login ='{$str_1}'", $id_connect);
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    tommyangelo
    не успел =))
    Web_LaMeR
    PHP:
    1. '{$str_1}'
    и скобки тут не нужны
     
  7. Web_LaMeR

    Web_LaMeR Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    3
    Симпатии:
    0
    Ура !!! Спасибо огромное !!! я точно часа полтора по инету лазил столько всего перечитал ничего подобного не нашол

    $result = mysql_query("SELECT * FROM " . TABLE . " WHERE user_login ='{$str_1}'", $id_connect);

    Отлично работает :)

    Да нет там помоему не был.

    Ну да часто вижу что так пишут '"$list"' про скобки уж не помню откуда взял помоему читал гдето что надо.
    Я сейчас уже так пишу '"$list"', а про скобки это да кажется когда в текст втавляеш переменные тогда скобки желательны.
    ещё раз Спасибо.
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Web_LaMeR
    когда массивы вставляешь
    " {$row['ololo']}" или результат методов " {$obj->method()}ы" для переменных только когда рядом с символом
    "{$var}пыщьпыщь"