PHP WebShell

Текущая директория: /var/www/bitcardoApp/backyard/models/settings

Просмотр файла: site_settings.php

<?php
// backyard/models/settings/site_settings.php
if (!isset($conn)) { include_once '../../config/db_config.php'; }

function ss_all(mysqli $conn): array {
    $rows = [];
    $sql = "SELECT id, setting_key, setting_value, created_at, updated_at FROM site_settings ORDER BY setting_key";
    if ($res = mysqli_query($conn,$sql)){
        while($r=mysqli_fetch_assoc($res)) $rows[]=$r;
        mysqli_free_result($res);
    }
    return $rows;
}

function ss_upsert(mysqli $conn, ?int $id, string $key, string $val): array {
    $key = trim($key);
    if ($key === '') return ['ok'=>false,'msg'=>'Key required'];
    $ks = mysqli_real_escape_string($conn,$key);
    $vs = mysqli_real_escape_string($conn,$val);

    if ($id) {
        $id = (int)$id;
        $q = "UPDATE site_settings SET setting_key='{$ks}', setting_value='{$vs}', updated_at=NOW() WHERE id={$id} LIMIT 1";
        if(!mysqli_query($conn,$q)) return ['ok'=>false,'msg'=>'Update failed'];
        return ['ok'=>true];
    } else {
        // prevent duplicate keys
        $q = "SELECT id FROM site_settings WHERE setting_key='{$ks}' LIMIT 1";
        $r = mysqli_query($conn,$q);
        if ($r && ($row=mysqli_fetch_assoc($r))) { if($r) mysqli_free_result($r);
            // update existing
            $id = (int)$row['id'];
            $q2 = "UPDATE site_settings SET setting_value='{$vs}', updated_at=NOW() WHERE id={$id} LIMIT 1";
            if(!mysqli_query($conn,$q2)) return ['ok'=>false,'msg'=>'Upsert update failed'];
            return ['ok'=>true, 'id'=>$id];
        }
        if($r) mysqli_free_result($r);
        $ins = "INSERT INTO site_settings(setting_key,setting_value,created_at,updated_at) VALUES('{$ks}','{$vs}',NOW(),NOW())";
        if(!mysqli_query($conn,$ins)) return ['ok'=>false,'msg'=>'Insert failed'];
        return ['ok'=>true,'id'=>(int)mysqli_insert_id($conn)];
    }
}

function ss_delete(mysqli $conn, int $id): array {
    $id = (int)$id;
    $q = "DELETE FROM site_settings WHERE id={$id} LIMIT 1";
    if(!mysqli_query($conn,$q)) return ['ok'=>false,'msg'=>'Delete failed'];
    return ['ok'=>true];
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!