За последние 24 часа нас посетили 17616 программистов и 1669 роботов. Сейчас ищут 1534 программиста ...

Аналогичный кусок кода в одном месте работает, в другом —нет

Тема в разделе "MySQL", создана пользователем Punk T-34, 13 дек 2011.

  1. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    Здравствуйте!
    Есть функция, которая записывает значения в БД. Я её сделал вчера для одного php-файла на сервере, в котором она работает. Сегодня скопировал как есть в php-файл с другим именем и поменял только имя таблицы, имена переменных и названия столбцов в таблице — не работает. Строка не записывается в таблицу. Команда return (строчки: 28–34) в обоих случаях не возвращает никакого значения. То есть до выполнения этого действия дело даже не доходит.
    Уже пол-дня смотрю на этот кусок кода как баран на новые ворота и не понимаю где может быть ошибка. Синтаксис проверил, названия столбцов в БД проверил — ошибок нигде нет.
    В чём может быть проблема?

    Заранее спасибо!

    PHP:
    1.  
    2. <?
    3. // ---
    4. // add a brand
    5. // ---
    6. function add($logo,$photo,$bname_ru,$bname_pl,$bname_en,$bname_ua,$bdescr_ru,$bdescr_pl,$bdescr_en,$bdescr_ua,$bcountry_ru,$bcountry_pl,$bcountry_en,$bcountry_ua,$blink,$bexcl,$bord)
    7. {
    8.    GLOBAL $db;
    9.    $bname_ru = addslashes(trim($bname_ru));
    10.    $bname_pl = addslashes(trim($bname_pl));
    11.    $bname_en = addslashes(trim($bname_en));
    12.    $bname_ua = addslashes(trim($bname_ua));
    13.    $bdescr_ru = addslashes(trim($bdescr_ru));
    14.    $bdescr_pl = addslashes(trim($bdescr_pl));
    15.    $bdescr_en = addslashes(trim($bdescr_en));
    16.    $bdescr_ua = addslashes(trim($bdescr_ua));
    17.    $bcountry_ru = addslashes(trim($bcountry_ru));
    18.    $bcountry_pl = addslashes(trim($bcountry_pl));
    19.    $bcountry_en = addslashes(trim($bcountry_en));
    20.    $bcountry_ua = addslashes(trim($bcountry_ua));
    21.    $blink = trim($blink);
    22.    $bexcl = trim($bexcl);
    23.    $bord = trim($bord);
    24.    $logo = trim($logo);
    25.    $photo = trim($photo);
    26.  
    27.    $query = mysql_query("INSERT INTO my_brands (logo,photo,name_ru,name_ua,name_pl,name_en,description_ru,description_pl,description_en,description_ua,country_ru,country_pl,country_en,country_ua,link,excl,order)
    28.   VALUES ('$logo','$photo','$bname_ru','$bname_ua','$bname_pl','$bname_en','$bdescr_ru','$bdescr_pl','$bdescr_en','$bdescr_ua','$bcountry_ru','$bcountry_pl','$bcountry_en','$bcountry_ua','$blink','$bexcl','$bord')");
    29.   if(!$query)
    30.    {
    31.       return "error=" . mysql_error();
    32.    } else {
    33.         $query = "";
    34.         return "bID=".mysql_insert_id();       
    35.    }
    36. }
    37.  
    38. if(isset($_POST["action"]))
    39. {
    40.    switch($_POST["action"])
    41.    {
    42.     case "add":
    43.          $result = add($_POST['logo'],$_POST['photo'],$_POST['bname_ru'],$_POST['bname_pl'],$_POST['bname_en'],$_POST['bname_ua'],$_POST['bdescr_ru'],$_POST['bdescr_pl'],$_POST['bdescr_en'],$_POST['bdescr_ua'],$_POST['bcountry_ru'],$_POST['bcountry_pl'],$_POST['bcountry_en'],$_POST['bcountry_ua'],$_POST['blink'],$_POST['bexcl'],$_POST['bord']);
    44.          print $result;
    45.          break;
    46.     }
    47. }
    48. ?>
     
  2. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    Вот что мне выдал сервер, когда я попробовал передать параметр action через GET:
    Написано, что ошибка в синтаксисе, но я её не вижу...
    Ещё нашёл аналогичную решённую проблему: http://www.cyberforum.ru/mysql/thread200438.html но я не понял, как её решили...
     
  3. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    ...а впроблема была в слове order. Оно в MySQL — служебное. Его нужно было написать с апострофами: `order`
    Тема закрыта.