我有以下 MySqli 查询:
$run = 0;
$result = $conn->query("SELECT title, author,i.isbn13, i.sku, quantity, weight, listed_price
from book
LEFT JOIN inventory i on book.isbn13 = i.isbn13
where quantity > 0 and i.isbn13 like '978%' limit $run, 5");
然后我通过 Amazon 的 API 运行它以返回 XML 数据。然后我解析它以更新我的表:
$conn->query("update book set author = '" . addslashes($amazonResult['Author']) . "', title ='" . addslashes($amazonResult['Title']) . "',
edition='" . addslashes($amazonResult['Edition']) . "',
weight='" . $amazonResult['Weight'] . "', publisher='" . addslashes($amazonResult['Publisher']) . "', binding='" . $amazonResult['Binding'] . "',
pub_date='" . $amazonResult['PublishDate'] . "', listed_price = '" .$amazonResult['ListPrice'] . "'
where isbn13 = '" . $amazonResult['isbn'] . "'");
更新$运行:
$run=$run+5;
并让它再次循环。然而,我的输出跳过了表中的前 5 行并返回了接下来的 5 行。此外,在运行了大约 20 条左右的记录后,它又跳过了 5 行。它处理的行是正确的,我通过查询的回显来验证。当我在 Navicat 中使用查询时,将 $run 替换为 0,一切正常,返回前 5 行。
知道我做错了什么或如何解决这个问题吗?我过去从未遇到过这种情况,并且对不同的报告使用几乎相同的查询。