作者aeolus0829 (archer)
看板PHP
標題[請益] 呼叫程式
時間Tue Nov 6 13:35:02 2007
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