Sync current dev state
This commit is contained in:
@@ -130,7 +130,8 @@ class VDatabase
|
||||
|
||||
if (is_array($cfg_vars) and count($cfg_vars) > 0) {
|
||||
foreach ($cfg_vars as $key => $post_field) {
|
||||
$query = $db->execute(sprintf("UPDATE `%s` SET `cfg_data` = '%s' WHERE `cfg_name` = '%s' LIMIT 1; ", $db_tbl, $post_field, $key));
|
||||
// Fixed: Changed cfg_data to cfg_value to match actual database column name
|
||||
$query = $db->execute(sprintf("UPDATE `%s` SET `cfg_value` = '%s' WHERE `cfg_name` = '%s' LIMIT 1; ", $db_tbl, $post_field, $key));
|
||||
$count = $db->Affected_Rows() > 0 ? $count + 1 : $count;
|
||||
|
||||
if ($_GET['s'] == 'backend-menu-entry1-sub9' and $cfg['activity_logging'] == 1) {
|
||||
@@ -271,14 +272,15 @@ class VDatabase
|
||||
|
||||
$q_get = '`cfg_name` IN ("' . implode('", "', $settings_array) . '")';
|
||||
|
||||
$q_result = $db->Execute(sprintf("SELECT `cfg_name`, `cfg_data` FROM `%s` WHERE %s;", $db_table, $q_get));
|
||||
// Fixed: Changed cfg_data to cfg_value to match actual database column name
|
||||
$q_result = $db->Execute(sprintf("SELECT `cfg_name`, `cfg_value` FROM `%s` WHERE %s;", $db_table, $q_get));
|
||||
|
||||
if ($q_result) {
|
||||
while (!$q_result->EOF) {
|
||||
$cfg_name = $q_result->fields['cfg_name'];
|
||||
$cfg_data = $q_result->fields['cfg_data'];
|
||||
$cfg[$cfg_name] = $cfg_data;
|
||||
$smarty->assign($cfg_name, $cfg_data);
|
||||
$cfg_value = $q_result->fields['cfg_value'];
|
||||
$cfg[$cfg_name] = $cfg_value;
|
||||
$smarty->assign($cfg_name, $cfg_value);
|
||||
@$q_result->MoveNext();
|
||||
}
|
||||
}
|
||||
@@ -458,6 +460,62 @@ class VDatabase
|
||||
return $rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* General-purpose query execution method
|
||||
* Returns array of results instead of ADORecordSet for easier frontend use
|
||||
*
|
||||
* @param string $sql SQL query to execute
|
||||
* @param array $params Optional parameters for prepared statement
|
||||
* @param int|false $cache_time Optional cache time in seconds (false = no cache)
|
||||
* @return array Array of associative arrays with query results, empty array on failure
|
||||
*/
|
||||
public function execute($sql, $params = [], $cache_time = false)
|
||||
{
|
||||
global $db;
|
||||
$rows = [];
|
||||
|
||||
try {
|
||||
// Validate SQL input
|
||||
if (empty($sql) || !is_string($sql)) {
|
||||
throw new InvalidArgumentException('Invalid SQL query');
|
||||
}
|
||||
|
||||
// Ensure params is an array
|
||||
if (!is_array($params)) {
|
||||
$params = [$params];
|
||||
}
|
||||
|
||||
// Execute query with or without caching
|
||||
if ($cache_time && is_numeric($cache_time) && $cache_time > 0) {
|
||||
$result = $db->CacheExecute($cache_time, $sql, $params);
|
||||
} else {
|
||||
$result = $db->Execute($sql, $params);
|
||||
}
|
||||
|
||||
// Check for query errors
|
||||
if (!$result) {
|
||||
$logger = VLogger::getInstance();
|
||||
$logger->logDatabaseError($db->ErrorMsg(), $sql, $params);
|
||||
return [];
|
||||
}
|
||||
|
||||
// Convert ADORecordSet to plain array
|
||||
if ($result && !$result->EOF) {
|
||||
while (!$result->EOF) {
|
||||
$rows[] = $result->fields;
|
||||
$result->MoveNext();
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
|
||||
} catch (Exception $e) {
|
||||
$logger = VLogger::getInstance();
|
||||
$logger->logDatabaseError($e->getMessage(), $sql ?? '', $params ?? []);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize input for database queries
|
||||
* @param mixed $input Input to sanitize
|
||||
|
||||
Reference in New Issue
Block a user