![]() |
КАК ДОБАВИТЬ ДАННЫЕ?
ЕСТЬ ТАКАЯ ФОРМА:
#!/usr/bin/perl use CGI ; use strict; print "Content-Type:text/html;win-1251\n\n"; print "<html><body bgcolor='lightblue' text='black' link='green' vlink='magenta'><h2>test</h2><hr>\n"; print "<pre>"; print "<b>Заполните пожалуйста предложенную форму и введенные Вами данные будут добавлены в таблицу </b>"; print "<form Method=Post Action=/cgi/add.pl>"; print "<pre>"; print " <b> NPP </b> <input type=text name=npps value='' maxlength=3 size=2>"; print "<b> NUMBER </b><input type=text name=numbers value='' maxlength=7 size=7>"; print" <b> FILM </b><input type=text name=films value='' maxlength=30 size=10>"; print"<b> AUTORS </b><input type=text name=autorss value='' maxlength=20 size=10>"; print "\n"; print "\n"; print "\n"; print"<b>TIMECODE</b><input type=text name=timecodes value='' maxlength=6 size=6>"; print"<b> ANNOTATION </b><input type=text name=annotations value='' maxlength=50 size=10>"; print "\n"; print "\n"; print "\n"; print"<b>DATA DATA DATA"; print "\n"; print"RELEASE OCENKI END</b>"; print "\n"; print"<input type=text name=date_of_recordss value='' maxlength=10 size=10>"; print"<b> </b><input type=text name=data_ocenkis value='' maxlength=10 size=10><b> "; print" </b><input type=text name=data_ends value='' maxlength=10 size=10>"; print "\n"; print "\n"; print "\n"; print"<b> </b> <input type=submit value='INSERT RECORD'></pre> "; print "</body></html>\n"; И ТАКОЙ СКРИПТ: #!/usr/bin/perl use CGI ; $query = new CGI; print "Content-Type:text/html;win-1251\n\n"; print "<html><body bgcolor='lightblue' text='black' link='green' vlink='magenta'><h2>test</h2><hr>\n"; use dbi; use Mysql; $dbh = Mysql->connect($localhost, $ddd, $root); $dbh->selectdb("ddd"); $np = $query->param("npps"); $numb = $query->param("numbers"); $fil = $query->param("films"); $autor = $query->param("autorss"); $time = $query->param("timecodes"); $annot = $query->param("annotations"); $data_rel = $query->param("date_of_recordss"); $data_ocen = $query->param("data_ocenkis"); $data_en = $query->param("data_ends"); $sth = $dbh->query ("insert into records(npp) values ($np)"); $sth = $dbh->query ("insert into records(number) values ($numb)"); $sth = $dbh->query ("insert into records(film) values ('$fil')"); $sth = $dbh->query ("insert into records(autors) values ('$autor')"); $sth = $dbh->query ("insert into records(time_code) values ($time)"); $sth = $dbh->query ("insert into records(annotation) values ('$annot')"); $sth = $dbh->query ("insert into records(data_ocenki) values ($data_ocen)"); $sth = $dbh->query ("insert into records(date_of_rec) values ($data_rel)"); $sth = $dbh->query ("insert into records(data_end) values ($data_en)"); print "<a href='http://localhost/'>в начало</a>"; print "</body></html>\n"; ВОПРОС: ПОЧЕМУ В БАЗУ ДАННЫХ ВНОСИТСЯ ТОЛЬКО СТРОКА FILM? |
ну зачем же кричать? :)
вносится, потомучто в кавычках мож я и дурак? :) но не стоит ли всё одним запросом? |
Согласно SQL-синтаксису нецифровые значения переменных влюбых запросах базыдолжны стоять в одинарных апостофах,
т.е вместо строчки $sth = $dbh->query ("insert into records(npp) values ($np)"); - неверно ! надо писать $sth = $dbh->query ("insert into records(npp) values ('$np');"); В принципе желательно для перестраховкивсе значения заключать в кавычки. Та же хорошо выводить ошибку SQL или просматрвать на этапе отладки генерируемый запрос: $quertmp="insert into records(npp) values ('$np');"; print "$quertmp"; $sth = $dbh->query ($quertmp); |
а я что сказал? :)
|
То же самое. Просто мне захотелось выпендриться и дать более развернутый и аргументированный ответ :xex:
|
Мне кааться что так будет правильнее...
$sth = $dbh->query ("insert into records(npp, number, film, autors, time_code, annotation, data_ocenki, date_of_rec, data_end) values ('$np', '$numb', '$fil', '$autor', '$time', '$annot', '$data_ocen', '$data_rel', '$data_en')"); ибо иначе он вставит кучу записей в которой бедт только один столбец правильный |
Я вот тож думаю.. но а мож так и задумано? :)
|
навряд ли
|
| Часовой пояс GMT +4, время: 16:31. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.