1

我从网上抓取了pdf链接,我想通过检查文档名称(我从链接中获得)和数据库中存在的文档名称来复制数据库中尚不存在的pdf。这是代码:

$input = explode(" ",trim(basename($pdfLink, ".pdf"),"() "));
$sql   = mysql_query("SELECT doc_name FROM tb WHERE doc_name ='$input'")or die(mysql_error());
if (!$sql){
    copy($pdfLink, $savePath . basename($pdfLink));
}

$pdfLink是 PDF 链接的字符串。但是,复制过程不起作用。怎么了?谢谢你 :)

4

2 回答 2

2

最好检查数据库中相关记录的计数

$input = explode(" ",trim(basename($pdfLink, ".pdf"),"() "));
$sql   = mysql_query("SELECT COUNT(*) AS cnt FROM tb WHERE doc_name ='$input'")
         or die(mysql_error());
$row   = mysql_fetch_assoc($sql);
if ($row['cnt'] < 1){
  copy($pdfLink, $savePath . basename($pdfLink));
}
mysql_free_result($sql);

或计算受影响的行:

$input = explode(" ",trim(basename($pdfLink, ".pdf"),"() "));
$sql   = mysql_query("SELECT doc_name FROM tb WHERE doc_name ='$input' LIMIT 1")
         or die(mysql_error());
$rows   = mysql_affected_rows($sql);
if ($rows < 1){
  copy($pdfLink, $savePath . basename($pdfLink));
}
mysql_free_result($sql);
于 2012-10-12T08:20:37.697 回答
1

如果您的SELECT语句返回一个空集(即没有找到任何东西),它仍然返回一个有效句柄,PHP 将其解释为 true。因此,如果没有发生数据库错误,则该变量$sql始终为真。

于 2012-10-12T08:10:50.940 回答