126 lines
3.3 KiB
PHP
126 lines
3.3 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
class WebAppRaiserDB {
|
||
|
|
|
||
|
|
public function __construct() {
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function matchFieldsToSave($fields, $valid_fields, $inner_id = 'id')
|
||
|
|
{
|
||
|
|
$return = array(
|
||
|
|
'fields_to_save' => array(),
|
||
|
|
'field_names' => '',
|
||
|
|
'field_values' => '',
|
||
|
|
'field_set' => '',
|
||
|
|
);
|
||
|
|
|
||
|
|
foreach ($valid_fields as $input_field_name => $db_field_name) {
|
||
|
|
if (isset($fields[$input_field_name])){
|
||
|
|
$return['field_names'] .= "`$db_field_name`, ";
|
||
|
|
$return['field_values'] .= "'$fields[$input_field_name]', ";
|
||
|
|
if($db_field_name != $inner_id)
|
||
|
|
$return['field_set'] .= "$db_field_name='$fields[$input_field_name]', ";
|
||
|
|
$return['fields_to_save'][$db_field_name] = $fields[$input_field_name];
|
||
|
|
}
|
||
|
|
elseif(isset($fields[$db_field_name])){
|
||
|
|
$return['field_names'] .= "`$db_field_name`, ";
|
||
|
|
$return['field_values'] .= "'$fields[$db_field_name]', ";
|
||
|
|
if($db_field_name != $inner_id)
|
||
|
|
$return['field_set'] .= "$db_field_name='$fields[$db_field_name]', ";
|
||
|
|
$return['fields_to_save'][$db_field_name] = $fields[$db_field_name];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$return['field_names'] = trim($return['field_names'], ", ");
|
||
|
|
$return['field_values'] = trim($return['field_values'], ", ");
|
||
|
|
$return['field_set'] = trim($return['field_set'], ", ");
|
||
|
|
return $return;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function save($table, $fields, $valid_fields, $inner_id = "id")
|
||
|
|
{
|
||
|
|
$match_fields = self::matchFieldsToSave($fields, $valid_fields);
|
||
|
|
|
||
|
|
if (empty($match_fields['fields_to_save'][$inner_id])) {
|
||
|
|
$sql = "INSERT INTO `$table` ($match_fields[field_names]) VALUES ($match_fields[field_values])";
|
||
|
|
mysql_query($sql);
|
||
|
|
$id = mysql_insert_id();
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
$id = $match_fields['fields_to_save'][$inner_id];
|
||
|
|
$t = self::select($table, $inner_id, $id);
|
||
|
|
if(empty($t)){
|
||
|
|
$sql = "INSERT INTO `$table` ($match_fields[field_names]) VALUES ($match_fields[field_values])";
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
$sql = "UPDATE `$table` SET $match_fields[field_set] WHERE $inner_id=$id";
|
||
|
|
}
|
||
|
|
mysql_query($sql);
|
||
|
|
}
|
||
|
|
return $id;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function select($table, $col_name, $col_value = NULL, $operator = '=')
|
||
|
|
{
|
||
|
|
if(is_null($col_value)){
|
||
|
|
$sql = "SELECT * FROM $table";
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
if(is_numeric($col_value)){
|
||
|
|
$sql = sprintf('SELECT * FROM `%s` WHERE `%s`%s%d', $table, $col_name, $operator, $col_value);
|
||
|
|
}
|
||
|
|
elseif(is_string($col_value)){
|
||
|
|
$sql = sprintf('SELECT * FROM `%s` WHERE `%s`%s"%s"', $table, $col_name, $operator, $col_value);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
$sql = '';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$res = mysql_query($sql);
|
||
|
|
$num_rows = mysql_num_rows($res);
|
||
|
|
|
||
|
|
if ($num_rows == 0) {
|
||
|
|
$return = [];
|
||
|
|
}
|
||
|
|
elseif($num_rows == 1){
|
||
|
|
$return[0] = mysql_fetch_assoc($res);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
while ($row = mysql_fetch_assoc($res)) {
|
||
|
|
$return[] = $row;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return $return;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function delete($table, $col_name, $col_value, $is_numeric = true)
|
||
|
|
{
|
||
|
|
if($is_numeric && is_numeric($col_value) && $col_value > 0) {
|
||
|
|
$sql = "DELETE FROM `$table` WHERE $col_name=$col_value";
|
||
|
|
mysql_query($sql);
|
||
|
|
return mysql_affected_rows();
|
||
|
|
}
|
||
|
|
elseif(!$is_numeric && is_string($col_value)){
|
||
|
|
$sql = "DELETE FROM `$table` WHERE $col_name='$col_value'";
|
||
|
|
mysql_query($sql);
|
||
|
|
return mysql_affected_rows();
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function get($name){
|
||
|
|
if(isset($this->$name)) {
|
||
|
|
return $this->$name;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|