PHP 板


LINE

看板 PHP  RSS
※ 引述《Relent (遺憾)》之銘言: : 我在php中做更新紀錄的動作 : 根據print出來的sql語法如下 : update `tableS` set `history`='[{"time":"2016-07-14 : 18:24:22","count":0,"link":"http://aaa.bbb.cc"}]' where account='110101' : 只是我的資料表history欄位裡面的資料,卻變成了這樣 : [{"time":"2016-07-14 : 18:24:22","count":0,"link":"http://aaa.bbb.cc"}, : {"time":"2016-07-14 : 18:24:22","count":0,"link":"http://aaa.bbb.cc"}, : {"time":"2016-07-14 : 18:24:22","count":0,"link":"http://aaa.bbb.cc"}, : {"time":"2016-07-14 : 18:24:22","count":0,"link":"http://aaa.bbb.cc"}] : 多出了3筆同樣的紀錄 : 想請問一下各位大大這種狀況是因為什麼呢 : 程式碼如下, : [code] : $count=0; : $bitStr="1101010101111010"; : while($count<30 && strlen($bitStr)>0){ : $percent=0.1; : $obj=new stdClass(); : $obj->time=$checkDate; : $obj->count=$count*$percent; : $obj->link=$url; : $arr=array(); : array_push($arr,$obj); : $str=json_encode($arr); : $sql="update tableS set history='".$str."' where account='".$bitStr."'"; : echo $sql; : mysql_query($sql); : $count++; : $bitStr=substr($bitStr,0,-1); : } : [/code] 1. 請愛用PDO的parameters binding, 不然遇到SQL injection... 2. 儲存時間最好用timestamp, 不然也期望你是UTC time..否則換server = gg 3. 你如果在php5.5+其實可以直接$str = json_encode([$obj]); 省去 $arr = array(); array_push($arr,$obj); 4. 你的110101010111101 才16個數字, 為什麼要while($count<30)? $bitStrLength = strlen($bitStr); for($i = 0, $i <= strlen($bitStrLength), $i++) 5. 照上面的code來看不應該會output3個一樣的, 但是我如果是你會這樣寫 {code:php} $count = 0; $percent = 0.1; $bitStr = "1101010101111010"; $bitStrLength = strlen($bitStr); for ($i = 0; $i < $bitStrLength; $i++) { // don't really know why you storing objects into json but whatever $obj = new stdClass(); $obj->time = $checkDate; $obj->count = $i * $percent; $obj->link = $url; $str = json_encode([$obj]); $sql = $sql="update tableS set history='".$str."' where account='".$bitStr."'"; echo $sql . "\n"; $bitStr = substr($bitStr, 0, -1); } {code} --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.156.64.189
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1468760645.A.6EE.html
1F:→ ej04cj86: 喔還有, xdebug是好物。 不用再echo var_dump了 07/17 21:05
2F:推 Relent: 感謝e大,本來是用pdo的不過寫成了function 呼叫,怕問的 07/19 19:10
3F:→ Relent: 不清楚,所以把sql語法的部分簡單寫了一下 07/19 19:11
4F:→ Relent: <30 是因為其他的狀況會有超過30的 07/19 19:12
5F:→ Relent: 本來我以為找到解了 結果IE跑久了也是會出現重複的寫入 07/19 19:13
6F:→ ej04cj86: 就你貼的部分應該是不會重複寫入的, 不然就$sql = '' 07/20 10:07
7F:→ ej04cj86: 在你loop的最前面. 還有看看pdo->execute()那邊有沒有 07/20 10:08
8F:→ ej04cj86: 另外的loop 07/20 10:08







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP