Re: [請益]直接將json塞進DB某筆資料欄位中 ?

看板PHP作者 (小企鵝)時間13年前 (2012/12/29 17:49), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《azureshin (azureshin)》之銘言: : $xml_array = array(); : foreach($oXML->remarklist->remark as $oEntry){ : array_push($xml_array,$oEntry); : } : $q="update table set remark='".json_encode($xml_array)."' where bid='1' "; : $mysqli->query($q); : 這個問題卡很久 : 這是一個XML, 就假設是網誌的XML訂閱好了 : 一般來說, 資料在規劃時, 會將文章放一個table_A, 回覆的留言是另個table_B, 之後再 : 用文章id關聯. : 但現在遇到特殊情形, 我希望將所有留言塞進一筆資料內, 也就是直接在文章table_A後 : 面再開一個欄位, 並將所有留言轉json後塞進去. : (先不論之後會遇到什麼問題, 但目前的需求大概就是長這樣, 希望我有表達清楚..) : 回正題 : remark是每篇回覆的母節點, 所以我想說先開一個array, 然後將remark丟進去, 這樣 : remark之下的子節點也會跟著丟進去. : 之後再對這array進行json_encode, 一口氣塞進去文章內. : 遇到了兩個問題 : 1. 塞進去的中文字, 讀出來時就不是中文了, 是編碼過後的文字, 但也長得很怪, 感覺 : 不太像印象中的json_encode, 好像少了跳脫符號(這個\) ? (ex: : u9c81u8944u516cu59ecu5348 ) : 2. 從myadmin進去看該欄位時, 會發現雖然是json格式, 但不完整, 正確說法是會自行斷 : 行, 我猜跟第一點有關係. : ----------- : 我有嘗試過直接在網頁上echo json_encode($xml_array); : 是標準的json, 有 \ 符號, 也不會自己斷行造成錯誤.... : 將頁面上顯示的json_encode($xml_array)結果透過myadmin貼進資料庫也沒問題 : 唯獨透過程式丟進去就會出現\消失的問題.... : 我的欄位格式是text mysql塞到資料庫時有 quote char...也就是你串sql cmd \ 符號被當跳脫字元吃掉了 不想管有什麼quote char的話..就直接 用prepare bind param 方式餵資料進去..就不會有這個問題 \uxxxx 這應該叫 Universal Character Name JAVA在用的..你可以用ICONV 轉減少一點字元數.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.170.238.54

12/30 02:17, , 1F
感謝, 正解
12/30 02:17, 1F
文章代碼(AID): #1GthoS_Z (PHP)
文章代碼(AID): #1GthoS_Z (PHP)