我一直在研究 Quickbooks PHP API,我想从 Quickbooks 获取数据并使用 PHP 脚本保存在 MYSQL 中。
我已成功使用 PHP 连接 Quickbooks,并且已完成查询以获取数据。
$Products = $ProductsService->query($Context, $realm, "SELECT * FROM item ");
foreach ($Products as $Product)
{
//First, we will retrieve the ID, and strip out any spaces/characters.
$id = $Product->getId();
$ProductID = preg_replace("/[^0-9]/","",$id);
echo('Customer Id=' . $ProductID. '<br>');
//// test for product name
if(!empty($Product->getName())){
$ProductName = $Product->getName();
} else {
$ProductName= '';
}
//Insert customer into product tables
$sql = "INSERT INTO products (ProductID__kp, ProductName)
VALUES ('".$ProductID."',
'".$ProductName."'
)
ON DUPLICATE KEY
UPDATE ProductName = '".$ProductName."' ";
$conn->query($sql);
}
上面的脚本成功运行并以数组形式返回结果。
问题是插入语句。我的 Quickbooks 中有 1579 个产品。但是当我运行上面的脚本时,MYSQL 数据库中只保存了 97 条记录。
我不知道为什么它只节省了 1579 个中的 97 个。
提前致谢。
最佳答案
这里实际上有两个不相关的问题:
默认情况下,QuickBooks Online API 一次仅返回 100 条记录。
阅读文档:
您只能返回 100 条记录。您可以通过数组的大小来判断:
数组(100)
您根本忽略了任何错误检查。
$conn->query($sql);
为什么不观察并捕获发生的任何错误呢?
然后您就会知道查询是否失败。
关于php - Foreach 循环不会将 Quickbooks 中的所有记录插入 MySQL 数据库。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43318528/