Здравствуйте. Помогите плиз решить проблему. Есть небольшой скриптик на perl который с учетом условий некоторых получает информацию с базы данных mysql, и те записи которые удовлетворяют условиям выборки обновляет в БД.
Сам скрипт выборки работает без ошибок, когда добавляю в этот скрипт еще и обновление выбранных записей выдает ошибку.
вот скрипт только выборки:
use DBI;
use CGI qw(param());
use English;
use FileHandle;
$dbh =DBI->connect ("DBI:mysql:mydatabase","username","databasepassword");
$sth = $dbh->prepare("
select id,Name,Bonus
from users
where
Bonus > 0
");
$sth->execute;
while( ($id, $Name, $Bonus)=$sth->fetchrow()) {
print " USER id: $id and Name: $Name and Bonus: $Bonus \n";
}
$sth->finish;
$dbh->disconnect;
А это скрипт который выдает ошибку после того как я добавил туда еще и обновление записей:
use DBI;
use CGI qw(param());
use English;
use FileHandle;
$dbh =DBI->connect ("DBI:mysql:mydatabase","username","databasepassword");
$sth = $dbh->prepare("
select id,Name,Bonus
from users
where
Bonus > 0
");
$sth->execute;
while( ($id, $Name, $Bonus)=$sth->fetchrow()) {
print " USER id: $id and Name: $Name and Bonus: $Bonus \n";
$sth = $dbh->prepare("
UPDATE users SET Bonus = 0
where
id = $id
");
$sth->execute;
}
$sth->finish;
$dbh->disconnect;
Ошибка такая: DBD::mysql::st fetchrow failed: fetch() without execute()
В результате запрос для первой записи которая обрабатывается первой выполняется успешно, а дальше цикл while прекращается с этой ошибкой.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.