作者chaoms (小企鹅)
看板PHP
标题Re: [请益]直接将json塞进DB某笔资料栏位中 ?
时间Sat Dec 29 17:49:14 2012
※ 引述《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
1F:推 azureshin:感谢, 正解 12/30 02:17