2014-03-26 20 views
0

我有一個問題, 'SoapClient的',錯誤日誌:的SOAPFault例外,調用未定義功能

[Wed Mar 26 20:23:15 2014] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined function DB() in /home/optim/DEW/task/Functions.php on line 12 
[Wed Mar 26 20:23:15 2014] [error] [client 127.0.0.1] PHP Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Server] Call to undefined function DB() in /home/optim/DEW/task/client.php:6\nStack trace:\n#0 /home/optim/DEW/task/client.php(6): SoapClient->__call('getClases', Array)\n#1 /home/optim/DEW/task/client.php(6): SoapClient->getClases()\n#2 {main}\n thrown in /home/optim/DEW/task/client.php on line 6 

這個代碼功能getClases()

public function getClases() { 
    $query = "SELECT CLASS, COLOR FROM clases"; 
    $getDB = DB($query); 
    return $getDB; 
} 

的錯誤是在:

$getDB = DB($query); 

我試圖包括在調用數據庫和我噸工作。這是代碼:

public function getClases() { 
    $query = "SELECT CLASS, COLOR FROM clases"; 
    $host = "localhost"; 
    $user = "dwes"; 
    $db = "class"; 
    $pass = "123456"; 

    $odb = new PDO("mysql:host=".$host.";dbname=".$db, $user, $pass); 
    $odb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    try { 
    $resultClase = $odb->query($query); 
    } 
    catch (PDOException $p) { 
    echo "Error ".$p->getMessage()."<br/>"; 
    } 
    return $resultClase; 
} 

此應用程序在使用soap-client之前完美工作。爲什麼它說'調用未定義的函數DB()'?,問題在哪裏?

感謝您的幫助。

回答

0

在函數getClasses()的作用域中沒有定義DB。 你很可能使用PHP的「全局」。

例如。

global $odb; 
$odb = new PDO("mysql:host=".$host.";dbname=".$db, $user, $pass); 
$odb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

現在,在我的getClasses()函數,我可以使用全局 「ODB」

public function getClases() { 
    $query = "SELECT CLASS, COLOR FROM classes"; 
    $getDB = $odb($query); 
    return $getDB; 
} 
+0

仍然給出了同樣的問題,我宣佈一個對象:$ getDB =新Funciones(); $ getDB-> DB($查詢); 現在顯示此屏幕:​​stdClass Object() –