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