从与数据库中的数据不同的链接复制文档

时间:2012-10-12 08:07:20

标签: php mysql

我从网上抓取了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链接的字符串。但是,复制过程不起作用。怎么了?谢谢你:))

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

如果你的SELECT语句返回一个空集(即没有找到任何内容),它仍会返回一个有效句柄,PHP将其解释为true。因此,如果没有发生数据库错误,变量$sql总是结果为真。