[請益] 資料庫查詢後的陣列索引值

看板PHP作者 (輕飄飄的雲)時間12年前 (2013/06/13 21:55), 編輯推噓4(4012)
留言16則, 6人參與, 最新討論串1/1
請教一下各位, 前人用PHP做了一個網站,需要我來維護, 但是他的網站載到我的LOCAL端卻無法使用, 才發現他用 $row = mysql_query($result,$database) 他都用 $row[name]; $row[id]; 這樣的方式取值, 可是正確的方式應該是$row['name'] $row['id']; 請問一下前人是修改了什麼設定讓陣列索引值可以直接取值出來? 因為對方寫的系統已經很完整了, 所以想在本機端只能修改成一樣的環境來繼續開發, 麻煩解惑了,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.243.202

06/13 22:16, , 1F
我比較想猜是資料庫沒蓋好...
06/13 22:16, 1F

06/13 23:56, , 2F
http://goo.gl/NJzhm 原文在這邊 簡單的說就是沒框起來的字
06/13 23:56, 2F

06/13 23:57, , 3F
如果沒被定義成常數 php會把它轉成字串 但裡面沒提到怎麼設
06/13 23:57, 3F

06/13 23:57, , 4F
定成這樣 還要再查一下
06/13 23:57, 4F

06/14 00:36, , 5F
確定是Mysql吼? 因為我看文章有 mysql_query
06/14 00:36, 5F

06/14 00:36, , 6F
因為MSSQL 確實可以不用['']
06/14 00:36, 6F

06/14 09:22, , 7F
mysql 也可以不用 ['']
06/14 09:22, 7F

06/14 11:32, , 8F
這跟什麼DBMS無關,在PHP預設中沒有定義的常數就會被轉成
06/14 11:32, 8F

06/14 11:33, , 9F
字串。但是這是個很不好的習慣,如果你的欄位剛好是預先
06/14 11:33, 9F

06/14 11:34, , 10F
定義的常數,那會造成非預期的錯誤。請乖乖的使用['xxx']
06/14 11:34, 10F

06/14 11:36, , 11F
使用這種糟糕寫法的人真的該叫來罵一罵,別再殘害後人了
06/14 11:36, 11F
謝謝各位的解惑,聽說前人比較熟的是MSSQL,到這家公司才依照需求學習php+mysql, 所以可能就跟kos大說的,因為MSSQL可以不用[''], 所以我發現這個網站裡面有很多MSSQL的影子, 然後我又參考了bency大連回了官網研讀了一下, 才發現原來php對於array的索引值沒有很嚴謹的規範, 才會讓我在測試環境有很多的問題,看來我應該就要跟rickysu大一樣, 改成正確的格式,慢慢改....。 只是不太懂在線上環境是可以正常show的,在測試環境就有問題, 所以才去思考是否是有改變設定值過,總之先謝了。 ※ 編輯: gss112196 來自: 210.66.55.239 (06/14 14:09)

06/14 16:13, , 12F
php取用undefined值會丟出一個notice的警告訊息,一般在
06/14 16:13, 12F

06/14 16:14, , 13F
正式環境中都會把notice以及warning關掉,可是開發環境會
06/14 16:14, 13F

06/14 16:16, , 14F
把訊息打開,有些 framework 會把這些訊息當成 error 處理
06/14 16:16, 14F

06/14 16:16, , 15F
導致程式執行中斷
06/14 16:16, 15F

06/16 10:48, , 16F
用pdo或ado熟哪個資料庫應該沒差吧....
06/16 10:48, 16F
文章代碼(AID): #1HkSzRe5 (PHP)
文章代碼(AID): #1HkSzRe5 (PHP)