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

Статус
В этой теме нельзя размещать новые ответы.

1Dreamweaver1

Профессор
Регистрация
4 Янв 2008
Сообщения
417
Реакции
45
Помогите разобраться.
Проблема заключается в следующем
Есть таблица "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."');
 
Смысл этой строки остался загадкой:

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

а вообще, похоже на бред.

Возможно, должно быть что-то в этом духе:
PHP:
$insdate = htmlspecialchars($res['qmounth']).'/'.htmlspecialchars($res['qday']).'/'.htmlspecialchars($res['qyear']);
 
PHP:
$insdate = $_POST['qmounth'].'-'.$_POST['qday'].'-'.$_POST['qyear'];
так будет инсертить если у тебя форм екшн пост если гет меняй $_POST на $_GET. Учти здесь нет проверки - подвержено это место SQL-инъекции

Добавлено через 5 минут
Смысл этой строки остался загадкой:

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

а вообще, похоже на бред.

Это и есть бред. Если посмотреть на синтакс
str_replace(find,replace,string,count)

Parameter Description
  • find Required. Specifies the value to find
  • replace Required. Specifies the value to replace the value in find
  • string Required. Specifies the string to be searched
  • count Optional. A variable that counts the number of replacements
 
Я пробывал по разному.
Таким способом в поле "searchdate", вообще ничего не инсертиться :(. Не могу догнать где ошибка

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

PHP:
$insdate = $_POST['qmounth'].'-'.$_POST['qday'].'-'.$_POST['qyear'];
 
Ты не смешивай 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.") ");
 
Ты не смешивай 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.") ");

"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] ... ]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху