У меня есть следующий запрос: MysqliMySQLi запрос пропуская первые 5 строк
$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");
который я затем запустить через API Amazon, чтобы вернуть 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'] . "'");
Update $ запуск:
$run=$run+5;
и он проходной снова. Однако мой вывод пропускает первые 5 строк в таблице и возвращает следующий 5. Кроме того, после запуска около 20 или около того записей, он снова пропускает 5. Строки, которые он обрабатывает, он делает правильно, что я проверяю по эхо запроса. Когда я использую запрос в Navicat, замените $ run на 0, все выглядит нормально, возвращаются первые 5 строк.
Любая идея, что я сделал не так, или как я могу это исправить? Я никогда не сталкивался с этим в прошлом и использовал почти тот же запрос для разных отчетов.
Я использовал порядок от isbn13 до, и не было никакой разницы. Что бы вы предложили вместо addlashes? Это то, что работает для моей команды обновления. – Jim
Спасибо за информацию о mysqli_real_escape_string, но это все еще не решает мою проблему пропущенных записей. Меня это больше всего волнует. – Jim