簡體   English   中英

在PHP中導出,修改和導入數據庫數據的最佳方法

[英]Best way to export DB data in PHP, modify it, and import it

我需要從MySQL數據庫中導出選定表中的數據,然后將其導入結構稍有不同的另一個MySQL數據庫中。 IOW,我需要在導出和導入之間修改數據(而不僅僅是字段名稱)。

我已經嘗試過使用json_encode和json_decode,並且幾乎可以使用,但是如果所有數據都不是純utf8,則json_encode會失效並且utf8_encode無法解決此問題。

我正在考慮CSV,序列化並在PHP中生成SQL。 這些選項中的哪一個會給我最可靠的轉帳?

您可能會使用PDO來查詢和創建對象數組,而不是可以直接在代碼中進行修改的對象。 然后使用該數據導入另一個數據庫。

更好的問題是為什么UTF-8對您不起作用。 確保您使用的是最新版本的PHP。 另外,請確保使用mb_前綴函數來維護UTF-8(或其他多字節)編碼。

PHP MultiByte字符串函數列表

您還可以在導出過程中對數據進行整形,具體取決於您使用SELECT語句對數據進行轉儲的方式以及對列進行重新排序,或者選擇性地省略某些列或使用條件更改數據的方式。 結果仍然是一組行和列。.只要它們與目標的結構匹配,就可以進行盲導入。 可能是,您雖然正在使用mysqldump或其他工具,但這並不那么容易。 根據所需的更改,在重新導入后,您始終可以使用SQL來修改數據。

由於SQL是用於處理數據的,因此這可能是處理事物的最簡單方法,而不是嘗試以PHP的轉儲格式解析大量內容。

我的問題不是我認為的json_encode問題引起的。 相反,問題是左連接錯誤。

因此答案是,只要您的查詢格式正確,所有列出的方法都是可靠的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM