作者gss112196 (輕飄飄的雲)
看板PHP
標題[請益] 資料庫查詢後的陣列索引值
時間Thu Jun 13 21:55:36 2013
請教一下各位,
前人用PHP做了一個網站,需要我來維護,
但是他的網站載到我的LOCAL端卻無法使用,
才發現他用
$row = mysql_query($result,$database)
他都用 $row[name]; $row[id]; 這樣的方式取值,
可是正確的方式應該是$row['name'] $row['id'];
請問一下前人是修改了什麼設定讓陣列索引值可以直接取值出來?
因為對方寫的系統已經很完整了,
所以想在本機端只能修改成一樣的環境來繼續開發,
麻煩解惑了,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.243.202
1F:推 LPH66:我比較想猜是資料庫沒蓋好... 06/13 22:16
3F:→ bency:如果沒被定義成常數 php會把它轉成字串 但裡面沒提到怎麼設 06/13 23:57
4F:→ bency:定成這樣 還要再查一下 06/13 23:57
5F:→ kosjason:確定是Mysql吼? 因為我看文章有 mysql_query 06/14 00:36
6F:→ kosjason:因為MSSQL 確實可以不用[''] 06/14 00:36
7F:推 yanli2:mysql 也可以不用 [''] 06/14 09:22
8F:→ rickysu:這跟什麼DBMS無關,在PHP預設中沒有定義的常數就會被轉成 06/14 11:32
9F:→ rickysu:字串。但是這是個很不好的習慣,如果你的欄位剛好是預先 06/14 11:33
10F:→ rickysu:定義的常數,那會造成非預期的錯誤。請乖乖的使用['xxx'] 06/14 11:34
11F:→ rickysu:使用這種糟糕寫法的人真的該叫來罵一罵,別再殘害後人了 06/14 11:36
謝謝各位的解惑,聽說前人比較熟的是MSSQL,到這家公司才依照需求學習php+mysql,
所以可能就跟kos大說的,因為MSSQL可以不用[''],
所以我發現這個網站裡面有很多MSSQL的影子,
然後我又參考了bency大連回了官網研讀了一下,
才發現原來php對於array的索引值沒有很嚴謹的規範,
才會讓我在測試環境有很多的問題,看來我應該就要跟rickysu大一樣,
改成正確的格式,慢慢改....。
只是不太懂在線上環境是可以正常show的,在測試環境就有問題,
所以才去思考是否是有改變設定值過,總之先謝了。
※ 編輯: gss112196 來自: 210.66.55.239 (06/14 14:09)
12F:→ rickysu:php取用undefined值會丟出一個notice的警告訊息,一般在 06/14 16:13
13F:→ rickysu:正式環境中都會把notice以及warning關掉,可是開發環境會 06/14 16:14
14F:→ rickysu:把訊息打開,有些 framework 會把這些訊息當成 error 處理 06/14 16:16
15F:→ rickysu:導致程式執行中斷 06/14 16:16
16F:推 f1234518456:用pdo或ado熟哪個資料庫應該沒差吧.... 06/16 10:48