Joywork/engine/classes/WebAppRaiser/WebAppRaiserDB.php

126 lines
3.3 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?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;
}
}
}