標籤:

PHP中的表名要不要define?

這篇文章的題目乍看莫名其妙。它說的是這麼一個問題:

PHP代碼中表示mysql的表名的是字元串,是直接用字面量呢,還是要define一下呢?

<?phpn$sql = "select from t1 limit 1";n// ORndefine(TB_1, t1);n$sql = "select from ".TB_1." limit 1";n

表面上看來第一種寫法更簡潔,第二種寫法更啰嗦一些。

但如果t1表在代碼中不止出現一次的話,第二種寫法也有幾種好處。

  1. 萬一t1表改名了,只需要改一處(改名的概率很小)
  2. 在IDE中獲得自動補全以及錯誤提示。

改名這件事情,真的很難遇到。可是一旦遇到,就是雞飛狗跳。有經驗的老程序員不會輕易改名。

自動補全和錯誤提示,比想像中的作用要大。因為SQL中寫錯表名,可能要到運行時才會報錯,那麼怎麼保證你不寫錯呢,使用define,只要一次寫對,就次次寫對了。

當然,有的IDE也可以lint SQL,有的ORM也可以讓你不用手寫表名。那就更好了。

我羅里吧嗦的說了這麼多,你可能覺得我再說廢話。因為要define這件事情,大家可能都知道。

我是想通過這件事情講一個原則:

讓我們掉進成功的坑裡

寫程序的時候,有些地方很容易出bug。一旦發生不幸,大家不免大吼一聲:坑!

但如果我們習慣性的不留坑,那麼最後走下去,就是成功的道路。

不要給未來的自己留坑,不要給別人留坑。

其實,有時候,未來的自己就是別人。三個月後的你對著自己的代碼抓耳撓腮的時候,你可能會憎恨過去的自己。

推薦閱讀:

為什麼好多人寫php的時候總是判斷反邏輯呢?
9段PHP實用功能的代碼推薦
Linux下php-fpm進程過多導致內存耗盡問題解決
PHP易錯面試題收集-持續更新

TAG:PHP | Web开发 | SQL |