我遇到了#soap; soapClient',日志中的错误:
[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之前完美运行。为什么它说&#39;调用未定义的函数DB()&#39;?,问题出在哪里?。
感谢您的帮助。
答案 0 :(得分: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;
}