Автор Тема: Perl и Mysql  (Прочитано 1989 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Pahom

  • Гость
Perl и Mysql
« : 13 Августа 2002, 12:57:46 »
Проблема следующая:
Имеется база данных с текстовой информацией, а именно - база URL.
Имеется текстовый файл, также содержащий URL, отличные от занесённых в базу.
Требуется найти и распечатать совпадающие урлы.
 
Вот кусок кода:
 
foreach $stroka(@stroki){
$sth=$dbh->prepare("select url from request where url=\\"$stroka\\"");
$sth->execute();
while (@array=$sth->fetchrow_array())
{
    $line_s=pop @array;
    print "$line_s";
}
}
 
где @stroki - массив строк файла.
 
Странность состоит в том, что если совпадают числовые значения, а не текстовые - Perl успешно распечатывает это совпадение, но почему нет печати строкового совпадения?????????

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Perl и Mysql
« Ответ #1 : 13 Августа 2002, 22:04:24 »
Мне кажется, что скорее всего проблема в том, что в запросах строковые параметры нужно заключать в апострофы, а не в кавычки.
Попробуй так: $sth=$dbh->prepare("select url from request where url=\'$stroka\' ");

Оффлайн dymka

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Perl и Mysql
« Ответ #2 : 15 Августа 2002, 20:10:23 »
Можно даже одним запросом сделать...

  $sth = $dbh->prepare("select url from request where url in (\'" .  join("\',\'" @stroki) . "\')");


НЕ запутайся в кавычках только

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28