2017-04-10 84 views
0

我一直在使用Quickbooks PHP API,我想從quickbooks獲取數據並使用PHP腳本保存在MYSQL中。Foreach循環不會將快速手冊中的所有記錄插入到MySQL數據庫中。

我已經成功連接的Quickbooks PHP和我做了查詢來獲得數據。

$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); 

} 

上述腳本成功運行並返回數組中的結果。

enter image description here

的問題是INSERT語句。快速書中有1579種產品。但是當我運行上面的腳本時,只有97條記錄被保存在MYSQL數據庫中。

我不知道爲什麼它只是提前節省97出1579

感謝。

+0

你爲什麼要發佈的代碼/響應,而不是實際的代碼/響應截圖? 您正在積極使之更難以爲我們解答,通過採取響應,而不僅僅是複製/粘貼的截圖。你也爲自己做了額外的工作。爲什麼? –

回答

0

實際上,你這裏有兩個不相關的問題:

的QuickBooks的在線的API一次只能默認返回100條記錄。

閱讀文檔:

你只找回100條記錄。您可以通過數組的大小告知:

array(100)

你忽略任何錯誤校驗的。

$conn->query($sql);

你爲什麼不看並接住出現的任何錯誤?

然後,你知道,如果一個查詢是失敗與否。

相關問題