MySQL SQL_SAFE_UPDATE 模式

剛發佈一個新模塊,就有客戶投訴說不能使用。安排了一個網上面對面檢查,發現對方在使用模塊時,一旦要進行資料庫的更新或刪除資料動作,就會被卡著。

錯誤訊息為 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.

查了下谷歌大神的説法,錯誤訊息中其實也已經給了很明顯的對策,就是這個服務器啓動了資料安全機制,一旦需要進行 Update 或 Delete 動作,必須在 WHERE 的語句中有使用 KEY 欄目。例如主索引欄目,常用名為 id。

解決方式也很簡單,如果只要繞過這個情況,在所有 Update 和 Delete 語句中,加入 id != “” 或 id <> “” 即可。

當然,如果服務器允許關閉此安全模式,也可以運行 SET SQL_SAFE_UPDATES=0; (系統當然是越安全越好,所以還是別用的好。。。)

查找MySQL/MariaDB的設置文件位置

有時候找尋這些設置文件,真的是一場噩夢。以下的指令可以輕鬆找到它的設置位置:

/usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"

另外,也可以文件夾統一儲存位置的形式置放它的設置文件。

#include all files from the config directory
!includedir /etc/my.cnf.d

jQuery 處理 json 內容

這已經不是第一次了,浪費了我整整半小時,就是在找出原因。。。

這次,寫下來提醒自己:


 

jQuery 中,進行 source 呼叫時的規則:

  1. 呼叫時,查詢關鍵字是以URL String的形態傳送到服務端。
  2. 服務端返回時,直接以 echo json($array) 返回字串即可。
  3. jQuery會自動解讀 json 內容,以指定的形態進行後續處理。

 

。。。

這次犯這個老錯誤,可以說太久沒弄程式了,還在熱身狀態中,無法避免犯這類錯誤。但如果下來再犯同一個錯誤。。。

可以買塊豆腐敲頭去了~

CodeIgniter (1) — 經濟不景氣,正是修行時

近幾個月來,如果有關心經濟的朋友,肯定會被嚇到目瞪口呆。雖説整個大環境都如此,大部分地區都進入經濟低迷的情況,但以馬來西亞這個充滿天然資源、基本面穩定的國度,竟然會進入如此窘境,說穿了就是上面的那隻雞沒能力,希望早日超度了,國家重新邁入正途。。。

啊~又嘮叨了。。。

嗯,正如主題說的,這個時節正是修行的好時候,當然別開著面書,你將會冒著爆血管、心臟病的風險。。。

嗯,就開始第一篇記錄我的 CodeIgniter 修行日記!

CI-Mainpage

Continue reading “CodeIgniter (1) — 經濟不景氣,正是修行時”

jquery.min.map — 再一次被Google Chrome玩死。。。

這是一個悲慘的實錄。

一早就被告知某個正在開發中的網頁程序出現不知名問題。最頭疼的是這網頁主要以jQuery開發,要檢查一些所謂不知名的問題時,可以說是老鼠拉龜無從下手。這次的情況就是如此。

在進入用戶界面後,一旦刷新頁面就會跳出一個警告通知,裡面只有非常精簡的一個英文字:error。花了兩個人,一個早上做檢查,也查問了谷歌大神不知道多少次數了,還是找不到問題的源頭在哪。

最後我只好先放下,讓同事繼續尋找根源。結果剛才去喝了一杯咖啡,回來就立刻有了靈感!我在想:頁面上的動作是通過jQuery和php互動,然後把返回的結果重新整理了,再顯示在頁面上。那麼有沒有可能在網服上的error log中找到答案呢?

結果真的讓我看到一絲曙光了。。。

httpd error log

真的詭異。jQuery 明明只用了一個主要的 min.js,怎麼會無端端跑了這個未曾謀面的 jquery.min.map 出來?!再次不恥下問去麻煩了下谷歌大神,才得知原來一切都是Google Chrome更新後搞出來的問題!

在剛更新的32版中,它預設自行開啟了 Enable source maps的選項,所以每當其進行jQuery的查詢時,會自動要求查詢 jquery.min.map 這個文件。由於在 jQuery 源碼中,這個檔案屬於可選項目,所以導致找不到檔案!

從 羊小咩-喇低賽 處的解釋是:

what is jquery source map

解決方式有二:
1. 修改Google Chrome的設置。進入【Developer Tools】 -> 【設定】,把 Enable source maps 這個項目關掉(false)。

2. 下載同一版本的source maps,放置在網服上的同一位置。

。。。。。

最後,Google Chrome貌似不時的更新就會給我們一些特別驚喜。。。
這些驚喜是不是可以盡量減少啊? (握拳熱淚)