2014-03-26 26 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() –