За последние 24 часа нас посетили 17496 программистов и 1606 роботов. Сейчас ищут 1099 программистов ...

php+mysql непонятная ошибка

Тема в разделе "PHP для новичков", создана пользователем FarmaZone, 24 ноя 2007.

  1. FarmaZone

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

    С нами с:
    22 ноя 2007
    Сообщения:
    20
    Симпатии:
    0
    я пытаюсь выполнить элементарный запрос выборки данных из бд, а мне вылетает такая ошибка - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1 - что это значит? у меня в первой строке кроме слова <html> нету ничего!
     
  2. Anonymous

    Anonymous Guest

    гг.
    Ты неправильно запрос выполняешь.
     
  3. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    где код? где элементарный запрос?
     
  4. FarmaZone

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

    С нами с:
    22 ноя 2007
    Сообщения:
    20
    Симпатии:
    0
    вот код:
    Код (Text):
    1.  
    2.  $query = mysql_query("SELECT * FROM mn_table WHERE 'Kuzov_id'='$_POST[kuzov]' AND 'v_id'='$_POST[v]' AND 'year_id'='$_POST[year]' AND 'model_id'='$_POST[model]'");
    3.  $query_result = mysql_query($query,$dblink);
    // ты бы ещё строк 300 выложил. Luge
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    имена полей и таблиц надо брать в обратные кавычки (`), а не прямые (')
    плюс
    Это что такое?
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    1. Сразу переданные значения от клиента в запрос засовывать нельзя - могут взломать базу.
    2. $_POST[kuzov]. kuzov - это не константа, это имя элемента массива (=элемента из формы), поэтому его надо заключать в кавычки.
    3. mn_table, 'Kuzov_id'... - это имя таблицы и столбцов, а не значения. Их надо заключать в обратные кавычки ``

    UPD: пока писал, Luge опередил))
     
  7. Anonymous

    Anonymous Guest

    Ага. А еще значения в строке точками конкатенируются, ага.
     
  8. FarmaZone

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

    С нами с:
    22 ноя 2007
    Сообщения:
    20
    Симпатии:
    0
    сделал обратные кавычки в именах таблиц и столбцов - результат тот же:(
     
  9. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    объясни, чего ты ожидал, передавая в mysql_query указатель на результат запроса
    ???
     
  10. FarmaZone

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

    С нами с:
    22 ноя 2007
    Сообщения:
    20
    Симпатии:
    0
    это для того чтоб потом проверку сделать
    Код (Text):
    1. if (!$query_result){
    2.          die(mysql_error());
    3.  }
    Не правильно?
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  12. FarmaZone

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

    С нами с:
    22 ноя 2007
    Сообщения:
    20
    Симпатии:
    0
    :cool: и правда - удалил эту фигню и всё заработало!!!!!!!!!!! спасибо!
     
  13. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    :D
     
  14. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    FarmaZone

    я обычно в твоем случае использую

    PHP:
    1. <?php
    2. function fault($type,$text=''){
    3.     global $showErrors;
    4.     echo $showErrors[$type].'<br>'.$text;
    5. }
    6. $dbh = mysql_connect();
    7. $sql = "select name from users limit 0,10";
    8. $d=mysql_query($sql,$dbh) or fault('DB_error',mysql_error());
    9. if(!mysql_num_rows($d)) or fault('DB_not_rows');
    10. ?>