Hallo zusammen,
stehe vor einem kleinen Problem. Vielleicht kann mir jemand helfen...
Ich habe eine mySQL-Datenbank da sind Termine eingetragen. Nun habe ich ein kleines Server-Script erstellt um von Extern auf meine Datenbank
zu gelangen und Termine auszulesen bzw. zu editieren. Funktioniert auch soweit, wenn ich einzelne Werte auslese. Wenn ich aber
alle Daten eines Termins bzw. mehrer Termine zu einem Array zusammenfassen will, bekomme ich immer folgende Meldung:
Call to a member function serialize() on a non-object in xmlrpc.inc on line 2907.
Hier mein PHP-Code:
stehe vor einem kleinen Problem. Vielleicht kann mir jemand helfen...
Ich habe eine mySQL-Datenbank da sind Termine eingetragen. Nun habe ich ein kleines Server-Script erstellt um von Extern auf meine Datenbank
zu gelangen und Termine auszulesen bzw. zu editieren. Funktioniert auch soweit, wenn ich einzelne Werte auslese. Wenn ich aber
alle Daten eines Termins bzw. mehrer Termine zu einem Array zusammenfassen will, bekomme ich immer folgende Meldung:
Call to a member function serialize() on a non-object in xmlrpc.inc on line 2907.
Hier mein PHP-Code:
PHP-Code:
<?php
require_once('/xampp/htdocs/test/inc/xmlrpc.inc');
require_once('/xampp/htdocs/test/inc/xmlrpcs.inc');
require_once('/xampp/htdocs/test/inc/class.mysqldb.php');
$addAppointment_signature = array (array ($xmlrpcStruct, $xmlrpcStruct));
$delAppointment_signature = array (array ($xmlrpcStruct, $xmlrpcStruct));
$getAppointment_signature = array (array ($xmlrpcStruct, $xmlrpcStruct));
$editAppointment_signature = array (array ($xmlrpcStruct, $xmlrpcStruct));
# implement request handler
class RpcRequestHandler {
function getAppointment($xmlrpcmsg) {
$database = new db_MySQL();
$par = $xmlrpcmsg->getParam(0);
$user = $par->structmem("user")->scalarval();
$password = $par->structmem("password")->scalarval();
$date = $par->structmem("date")->scalarval();
$database->connect();
$query = "SELECT * FROM termine WHERE termin_datum='$date'";
$result = $database->QueryResult($query);
$appointments = array();
if($database->AffectedRows() > 0) {
$termin_count = $database->AffectedRows();
while($row = $database->FetchResult($result))
{
array_push($appointments,array(
new xmlrpcval($row['id'],"int"),
new xmlrpcval($row['termin_datum'],"string"),
new xmlrpcval($row['termin_zeit'],"string"),
new xmlrpcval($row['text'],"string")
));
}
$database->FreeResult($result);
}
$database->Disconnect();
$rpcStruct = new xmlrpcval (
array(
"count" => new xmlrpcval($termin_count, "int"),
"appointments" => new xmlrpcval($appointments, "array")
), "struct"
);
return new xmlrpcresp($rpcStruct);
} # end getAppointment()
function addAppointment($xmlrpcmsg) {
return new xmlrpcresp($rpcStruct);
} # end addAppointment();
function delAppointment($xmlrpcmsg) {
return new xmlrpcresp($rpcStruct);
} # end delAppointment();
function editAppointment($xmlrpcmsg) {
return new xmlrpcresp($rpcStruct);
} # end Appointment();
} # end class
# implement RPC Server
$server = new xmlrpc_server(
array(
"requestHandler.addAppointment" => array(
"function" => "RpcRequestHandler::addAppointment",
"signature" => $addAppointment_signature),
"requestHandler.delAppointment" => array(
"function" => "RpcRequestHandler::delAppointment",
"signature" => $delAppointment_signature),
"requestHandler.getAppointment" => array(
"function" => "RpcRequestHandler::getAppointment",
"signature" => $getAppointment_signature),
"requestHandler.editAppointment" => array(
"function" => "RpcRequestHandler::editAppointment",
"signature" => $editAppointment_signature)
)
);
?>
Kommentar