次の 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=$run+5;
もう一度ループさせます。それでも、私の出力はテーブルの最初の 5 行をスキップし、次の 5 行を返します。また、約 20 レコードを実行した後、再び 5 行をスキップします。それが処理する行は、正しく処理されます。これは、クエリのエコーで確認できます。Navicat でクエリを使用すると、$run を 0 に置き換えます。すべて問題なく表示され、最初の 5 行が返されます。
私が間違っていたこと、またはこれを修正する方法はありますか? 過去にこれに遭遇したことはなく、さまざまなレポートにほぼ同じクエリを使用しています。