看板 PHP 關於我們 聯絡資訊
Hi, 我有三隻程式 config.php 部份節錄 require('DB.php'); // pear DB include('functions.php'); // 自己寫的一些 function $db = DB::connect('mysql://root:@localhost/spfp'); // 連結資料庫的設定 function.php function dispQry($sql) { 部份節錄 $get_cnOdr = $db->query($sql); $cnOdrNums = $get_cnOdr->numrows(); $cnOdrRows = $db->getAll($sql); foreach ($cnOdrRows as $cnOdrRow) { #exit(); for ($cnOdrCnt=0;$cnOdrCnt<$cntCol_array;$cnOdrCnt++) { ... ... ... } // function dispQry($sql) test1.php require('config.php'); $sql="SELECT ......."; dispQry($sql); 因為用來顯示資料用的 dispQry 這段程式常常會被用到,所以想寫成 funcion 這樣我只要在其他的地方先將 sql 寫好,用 dispQry($sql) 的方法,應該可以做到 用同一段程式碼,顯示不同資料 <- 理想狀況 但是我執行 test1.php 時,會有錯誤訊息 Fatal error: Call to a member function on a non-object in /var/www/spfp/inc/functions.php on line 62 上面的錯誤訊息指的是 $get_cnOdr = $db->query($sql); 應該是 query 這一個 function 找不到 我不懂的是,我明明有在 config.php 中 require('DB.php') 如果我把 function dispQry 的程式寫到 test1.php 就不會有錯誤訊息 ... 是不是有什麼地方我沒有搞懂啊 ... 囧rz 還是有什麼更好的方法可以用呢? 請各位前輩指點一下... m(_ _)m 謝謝 ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.203.236 ※ 編輯: aeolus0829 來自: 220.130.203.236 (11/06 13:50)
kasase:他的意思是你的$db不是一個物件 11/06 14:50
kasase:$db = DB::connect('mysql://root:@localhost/spfp'); 11/06 14:50
kasase:上面這個connect的function是create an object? 11/06 14:51
clifflu:很可能是沒在 function 裡設好 global 11/06 14:51
clifflu:補充: 不只是很可能, 應該就是醬 XD 11/06 14:52
aeolus0829:XD 原來如此.... 我再去 php.net 閉關一下好了 11/06 14:58
aeolus0829:感謝樓上的各位前輩提醒 m(_ _)m 11/06 14:58
aeolus0829:謝謝 clifflu 的水球,我收到了 ^ ^ 11/06 15:09
aeolus0829:好神奇..在function{}裡加了 global $db 就可以了 ^ ^ 11/06 15:15
aeolus0829:自推太多了.. 噓一些掉 11/06 15:22
aeolus0829: 11/06 16:21