0

我有一个 PHP 脚本,旨在从网站上抓取数据。该脚本每次找到新项目时都会检查本地托管的 mysql 数据库,以查看该项目是否已下载并已存在于 Mysql 数据库中。如果它看到该项目已经存在于数据库中,它应该忽略它并继续前进。这是我用来执行此操作的代码:

$result = mysql_query("SELECT * FROM web_media WHERE sourceForum LIKE '%$ForumtoGrab%' AND titleThreadNum=$threadTitleExists");

if((!mysql_num_rows($result)) && (mysql_num_rows($result) !== FALSE))
{}

换句话说,如果结果为零,则该项目被视为新项目。这个脚本在我的旧托管公司运行了几个月。我最近搬到了一个新的托管服务提供商,我突然遇到了一个非常奇怪的问题。每隔 12 小时左右,表达式似乎随机失败,脚本会找到一堆已经存在于 mysql 数据库中的“新”数据。我已经尝试手动运行查询,并且代码似乎没有问题,找到预先存在的条目没有问题。

有谁知道这里发生了什么?我已经与托管服务提供商核实过,他们说我们拥有的中止 Mysql 连接的数量非常少,无需担心……所以这似乎不是 MySQL 本身的问题。我怀疑这可能是mysql查询的问题?

谢谢

4

1 回答 1

0

尝试检查 MySQL 错误日志以查找查询中的错误。PS:我希望您正在准备 $threadTitleExists 以在 MySQL 查询中使用(如 (int)$threadTitleExists 或 mysqli_real_escape_string($threadTitleExists))

于 2013-05-21T11:26:10.263 回答