URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4820
[ Назад ]

Исходное сообщение
"Perl-MySQL"

Отправлено freevict , 27-Мрт-07 14:28 
есть SELECT и вывод из таблицы:

print"<form action='/cgi-bin/zapros.pl' method='post'>";
while (my @row = $sth1->fetchrow_array)
{
print"<input type='text' name='row' value='$row[0]">
print"<input type='text' name='row' value='$row[1]">
print"<input type='text' name='row' value='$row[2]">
print"<input type='text' name='row' value='$row[3]">
}
print</form>
=======
Теперь в zapros.pl надо делать INSERT в другую таблицу:
принимаю данные из формы:
my $cit = new CGI;
my @p=$cit->param('row');
потом:
$query1="insert into table2(field1,field2,field3,field4) values (?,?,?,?)";
$sth1=$dbh->prepare($query1);
$sth1->execute(@p);
========
Ругается, подскажите pls что я делаю неправельно, заранее благодарен


Содержание

Сообщения в этом обсуждении
"Perl-MySQL"
Отправлено Giro , 27-Мрт-07 14:58 
>Ругается, подскажите pls что я делаю неправельно, заранее благодарен

А как именно ругается нельзя было привести?


"Perl-MySQL"
Отправлено freevict , 27-Мрт-07 15:14 
>>Ругается, подскажите pls что я делаю неправельно, заранее благодарен
>
>А как именно ругается нельзя было привести?


меня интересует если я правельно делаю, а ругается :
execute falled:called with 56 bind variables when 7 are needen


"Perl-MySQL"
Отправлено Koba LTD , 28-Мрт-07 10:14 
>>>Ругается, подскажите pls что я делаю неправельно, заранее благодарен
>>
>>А как именно ругается нельзя было привести?
>
>
>меня интересует если я правельно делаю, а ругается :
>execute falled:called with 56 bind variables when 7 are needen
учимся приблезительно переводить сообщения об ошибках
->выполнение провалено:вызвано(добавлено) 56 значений(вариаций) когда нужно 7

Пояснения у тебя навероное гдето используються в значениях переменных для запроса запятые или массив/хеш и ты из вставляешь в запрос без одиночных ковычек, при формировании строчи, т.к. запятая (или разделитель елементов) воспринимаються в запросе как синтаксис запроса, а не значения переменной и получаеться что в место того чтобы добавить 4 значения ты вставляешь 56 :)
совет при формировании sql запроса ВСЕГДА заключай переменные в одиночные ковычки, не навредит точно, а от многих глюков спасет.


"Perl-MySQL"
Отправлено XAnder , 27-Мрт-07 15:45 
>print"<input type='text' name='row' value='$row[0]">
>print"<input type='text' name='row' value='$row[1]">
>print"<input type='text' name='row' value='$row[2]">
>print"<input type='text' name='row' value='$row[3]">

С кавычками здесь напутали.

>print</form>

А тут кавычек вообще нет.

Если на это ругается, то правильно ругается.


"Perl-MySQL"
Отправлено freevict , 27-Мрт-07 15:48 
>>print"<input type='text' name='row' value='$row[0]">
>>print"<input type='text' name='row' value='$row[1]">
>>print"<input type='text' name='row' value='$row[2]">
>>print"<input type='text' name='row' value='$row[3]">
>
>С кавычками здесь напутали.
>
>>print</form>
>
>А тут кавычек вообще нет.
>
>Если на это ругается, то правильно ругается.


В скрипте все правельно с ковычками, не на это ругается


"Perl-MySQL"
Отправлено A , 27-Мрт-07 18:13 
точно!! лажа с кавычками :-)))