Forum Webscript.Ru
Программирование => Perl => Тема начата: Pahom от 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 успешно распечатывает это совпадение, но почему нет печати строкового совпадения?????????
-
Мне кажется, что скорее всего проблема в том, что в запросах строковые параметры нужно заключать в апострофы, а не в кавычки.
Попробуй так: $sth=$dbh->prepare("select url from request where url=\'$stroka\' ");
-
Можно даже одним запросом сделать...
$sth = $dbh->prepare("select url from request where url in (\'" . join("\',\'" @stroki) . "\')");
НЕ запутайся в кавычках только