MySql: проблемы с инсертом данных

Тема в разделе "Базы данных", создана пользователем 1Dreamweaver1, 18 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Помогите разобраться.
    Проблема заключается в следующем
    Есть таблица "Prof" (id, searchdate)

    Есть форма с 3 селектами:
    HTML:
    Месяц(10) - <select name="qmounth" id="qmounth">
    Число(25) - <select name="qday" id="qday" >
    Год(2008) -  <select name="qyear" id="qyear" >
    После нажать кнопки "insert" данные из этих 3-х селектов должны инсертиться в поле "searchdate", но в поле "searchdate" инсертиться только месяц "qmounth".

    PHP:
    $insdate str_replace(".","/".htmlspecialchars($res['qmounth']).'/',htmlspecialchars($res['qday']).'/',htmlspecialchars($res['qyear']));

    mysql_query("INSERT INTO Prof SET /*id='".$id."',*/ , searchdate='".$insdate."');
     
  2. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Смысл этой строки остался загадкой:

    PHP:
    $insdate str_replace(".","/".htmlspecialchars($res['qmounth']).'/',htmlspecialchars($res['qday']).'/',htmlspecialchars($res['qyear']));
    а вообще, похоже на бред.

    Возможно, должно быть что-то в этом духе:
    PHP:
    $insdate htmlspecialchars($res['qmounth']).'/'.htmlspecialchars($res['qday']).'/'.htmlspecialchars($res['qyear']);
     
  3. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    PHP:

    $insdate 
    $_POST['qmounth'].'-'.$_POST['qday'].'-'.$_POST['qyear'];
    так будет инсертить если у тебя форм екшн пост если гет меняй $_POST на $_GET. Учти здесь нет проверки - подвержено это место SQL-инъекции

    Добавлено через 5 минут
    Это и есть бред. Если посмотреть на синтакс
     
  4. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Я пробывал по разному.
    Таким способом в поле "searchdate", вообще ничего не инсертиться :(. Не могу догнать где ошибка

    PHP:
    $insdate $_POST['qmounth'].'-'.$_POST['qday'].'-'.$_POST['qyear'];  
    PHP:
    $insdate $_POST['qmounth'].'-'.$_POST['qday'].'-'.$_POST['qyear'];  
     
  5. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Ты не смешивай INSERT c UPDATE...
    PHP:
    mysql_query("INSERT INTO Prof SET /*id='".$id."',*/ , searchdate='".$insdate."');  
    Запрос мускульный для вставки в БД должен выглядеть так:
    PHP:
    mysql_query("INSERT INTO `Prof` (id, searchdate) VALUES (".$id.", ".$insdate.") ");
     
    1Dreamweaver1 нравится это.
  6. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    "INSERT INTO ..... SET ...." - тоже отлично работает :)

    Один из синтаксисов:
    Код:
    INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
        [INTO] tbl_name
        SET col_name={expr | DEFAULT}, ...
        [ ON DUPLICATE KEY UPDATE
          col_name=expr
            [, col_name=expr] ... ]
     
    1Dreamweaver1 нравится это.
Статус темы:
Закрыта.