PHP Classes

File: DBWebService.php

Recommend this page to a friend!
  Classes of Erwin Kooi   DB Web Service   DBWebService.php   Download  
File: DBWebService.php
Role: Auxiliary script
Content type: text/plain
Description: public functions
Class: DB Web Service
SOAP Web service to provide remote database access
Author: By
Last change:
Date: 19 years ago
Size: 5,335 bytes
 

Contents

Class file image Download
<?
function getTable($name, $parameters) {
   
   
/* custom code */
   
    /* mysql types to java translation */
   
$java_field_types=array(
       
"string"=>12, // java.sql.Types.VARCHAR
       
"int"=>4, // java.sql.Types.INTEGER
       
"blob"=>2004, // java.sql.Types.BLOB
       
"date"=>91, // java.sql.Types.DATE
       
"real"=>7, // java.sql.Types.REAL
       
"datetime"=>91, // java.sql.Types.DATE
       
"timestamp"=>93, // java.sql.Types.TIMESTAMP
       
"time"=>92, // java.sql.Types.TIME
       
"year"=>91, // java.sql.Types.DATE
   
);
   
   
$where = "";
    foreach (
$parameters as $field=>$value) $where.= (strlen($where)>0?" and ":" where ").$field." ".($value?"= '$value'":" is null");
   
$sql = "select * from $name".$where;
    echo
"<!-- $sql -->";
   
$dataset=executeTableSql($sql);
    global
$db_error;
    if (!
$dataset) return fault($db_error);
   
$columnNames = array();
   
$columnTypes = array();
    while (
$meta = mysql_fetch_field($dataset)) {
          
$columnNames[] = $meta->name;
          
$columnTypes[] = $java_field_types[$meta->type];
       }

   
$records = array();
    while (
$line=mysql_fetch_assoc($dataset)) {
       
$records[] = new DBRecord(@$line["id"],$line);
    }
   
/* end of custom code */
   
   
$table = new DBTable(
       
$name,
       
$columnNames,
       
$columnTypes,
       
$records
   
);
    return
$table->toSoap();
}

function
getRecord($table,$id) {
   
/* custom code */
   
$sql = "select * from $table where ID=$id";
    echo
"<!-- $sql -->";
   
$row = getOneRow($sql);
    if (!@
$row) return fault("record not found","id=$id");
   
/* end of custom code */
   
   
$record = new DBRecord($id,$row);
    return
$record->toSoap();
}

function
getRecordValue($table,$id,$column) {
   
$value = getOneValue("select $column from $table where ID=$id");
    if (!@
$value) return fault("value not found","id=$id column=$column");
    return
soapResult("getRecordValue","string",$value);
}
function
synchronizeRecordsById($table,$ids,$data) {
   
/* custom code */
   
$trans = array();
    foreach (
$ids as $i=>$id) {
        if (
$id) {
           
$sql = "";
            foreach (
$data[$i] as $field=>$value) {
               
$sql .= (strlen($sql)>0?",":"") . $field." = '".str_replace("'","\'",$value)."'";
            }
           
$sql = "update $table set $sql where id=$id";
        } else {
           
$fields = "";
           
$values = "";
            foreach (
$data[$i] as $field=>$value) {
               
$fields.= (strlen($fields)>0?",":"") . $field;
               
$values.= (strlen($values)>0?",":"") . "'".str_replace("'","\'",$value)."'";
            }
           
$sql = "insert into $table ($fields) values ($values)";
        }
        echo
"<!-- $sql -->\n";
       
$trans[] = $sql;
    }
   
$result = executeTransSql($trans);
    global
$db_error;
    if (
$db_error) return fault($db_error);
   
/* end of custom code */

   
return soapResult("synchronizeRecordsById","int",$result);
}
function
synchronizeRecordById($table,$id,$data) {
   
/* custom code */
   
if ($id) {
       
$sql = "";
        foreach (
$data as $field=>$value) {
           
$sql .= (strlen($sql)>0?",":"") . $field." = '".str_replace("'","\'",$value)."'";
        }
       
$sql = "update $table set $sql where id=$id";
    } else {
       
$fields = "";
       
$values = "";
        foreach (
$data as $field=>$value) {
           
$fields.= (strlen($fields)>0?",":"") . $field;
           
$values.= (strlen($values)>0?",":"") . "'".str_replace("'","\'",$value)."'";
        }
       
$sql = "insert into $table ($fields) values ($values)";
    }
    echo
"<!-- $sql -->\n";
   
$result = executeSql($sql);
    global
$db_error;
    if (
$result==-1) return fault($db_error);
   
/* end of custom code */
   
   
return soapResult("synchronizeRecordById","int",$result);
}
function
synchronizeRecordsByMatch($table,$match,$data) {
   
/* custom code */
   
$where = "";
    foreach (
$match as $field=>$value) $where.= (strlen($where)>0?" and ":" where ").$field." ".($value?"= '$value'":" is null");
   
$sql = "";
    foreach (
$data as $field=>$value) {
       
$sql .= (strlen($sql)>0?",":"") . $field." = '".str_replace("'","\'",$value)."'";
    }
   
$sql = "update $table set $sql $where";
    echo
"<!-- $sql -->\n";
   
$result = executeSql($sql);
    global
$db_error;
    if (
$result==-1) return fault($db_error);
   
/* end of custom code */
   
   
return soapResult("synchronizeRecordsByMatch","int",$result);
}
function
deleteRecordsById($table,$ids) {
   
/* custom code */
   
$sql = "";
    foreach (
$ids as $id) {
       
$sql .= (strlen($sql)>0?",":"") . $id;
    }
   
$sql = "delete from $table where id in ($sql)";
    echo
"<!-- $sql -->\n";
   
$result = executeSql($sql);
    global
$db_error;
    if (
$result==-1) return fault($db_error);
   
/* end of custom code */

   
return soapResult("deleteRecordsById","int",$result);
}
function
deleteRecordById($table,$id) {
   
/* custom code */
   
$sql = "delete from $table where id = $id";
    echo
"<!-- $sql -->\n";
   
$result = executeSql($sql);
    global
$db_error;
    if (
$result==-1) return fault($db_error);
   
/* end of custom code */
   
   
return soapResult("deleteRecordById","int",$result);
}
function
deleteRecordsByMatch($table,$match) {
   
/* custom code */
   
$where = "";
    foreach (
$match as $field=>$value) $where.= (strlen($where)>0?" and ":" where ").$field." ".($value?"= '$value'":" is null");
   
$sql = "delete from $table $where";
    echo
"<!-- $sql -->\n";
   
$result = executeSql($sql);
    global
$db_error;
    if (
$result==-1) return fault($db_error);
   
/* end of custom code */
   
   
return soapResult("deleteRecordsByMatch","int",$result);
}

?>