看板 PHP 關於我們 聯絡資訊
※ 引述《joedenkidd (優質的藍色射手)》之銘言: : Hi All: : $up_sql="update db set value=1 where id='123' and sn='2345'"; : $up_exec=pg_exec($server_link,$up_sql); : $up_result=pg_affected_rows($up_exec); : if($up_result==0) : { : $ins_sql="insert into db(id,sn) values('234','aaa')"; : $ins_exec=pg_exec($server_link,$ins_sql); : } : 以上是我資料更新或新增的程式,正常來說,當 db裡面有 id='123',sn='2345'的時候 : pg_affected_rows的值並不會等於0 : 所以我用這種方式來判斷資料是要更新或是新增, : 可是觀察了一陣子,發現還是有部分的資料,會 : 被重復寫入,不知道這樣子是出了什麼問題,請 : 各位指點一下,拜託... : 程式:PHP : DB : POSTGRESQL 解決方法 http://stackoverflow.com/questions/1109061 最好的方式是在sql裡面一次做完 資料庫內部自己會去做執行緒安全問題 但PHP在搞執行緒的問題上很糟糕 所以盡量在sql裡面一口氣搞定 在要不然..... 你就只能下sql時用交易模式去做了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.219.211 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1416544868.A.904.html
joedenkidd: 大大說是個好方式,我試看看~~ 11/21 19:42