У меня есть старый код, который использует старую библиотеку Mysql
на Perl.Convert -> numrows для использования с DBD :: mysql в Perl
В большинстве случаев обновление кода для использования DBD::mysql
вместо этого работает без проблем, однако я столкнулся с проблемой, когда ->numrows
не работает.
Что я должен сделать, чтобы получить ту же функциональность при одновременном использовании DBD::mysql
использование Mysql
use Mysql;
$type = "yellow";
$statement = "select name from customer where type = '$type'";
$sth = $dbh->query($statement);
if ($sth->numrows) {
print "Success!"; # This does work.
}
использования DBD :: MySQL
use DBI;
use DBD::mysql;
$type = "yellow";
$statement = "select name from customer where type = ?";
$sth = $dbh->prepare($statement);
$sth->execute($type);
if ($sth->numrows) {
print "Success!"; # This doesn't work.
}
Это я ошибка вернуться:
хвост /var/log/apache2/error.log
Can't locate object method "numrows" via package "DBI::st"
Из [DBI] (http://p3rl.org/DBI): Для операторов SELECT выполняется просто «запускает» запрос в ядре базы данных. Используйте один из методов выборки для извлечения данных после вызова execute. Метод execute не возвращает количество строк, которое будет возвращено запросом (поскольку большинство баз данных не может сказать заранее), он просто возвращает истинное значение. – choroba
'$ sth-> execute ($ type); $ numRows = $ sth-> rows; if ($ numRows) {print «Успех!»;} 'Это должно работать. – AbhiNickz