Skip to content

Commit

Permalink
Small update
Browse files Browse the repository at this point in the history
  • Loading branch information
KazukiPrzyborowski committed Sep 24, 2024
1 parent 8244d20 commit ef01d40
Show file tree
Hide file tree
Showing 12 changed files with 100 additions and 79 deletions.
2 changes: 1 addition & 1 deletion inc/members.php
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@
$gsess_query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($ViewSessMem['GroupID']));
$gsess_result=sql_query($gsess_query,$SQLStat);
$gsess_result_array = sql_fetch_assoc($gsess_result);
$ViewSessMem['Group']=gsess_result_array["Name"];
$ViewSessMem['Group']=$sess_result_array['Name'];
$PreAmIHiddenUser = GetUserName($UserSessInfo['UserID'],$Settings['sqltable'],$SQLStat);
$AmIHiddenUser = $PreAmIHiddenUser['Hidden']; }
if(!isset($AmIHiddenUser)) { $AmIHiddenUser = "no"; }
Expand Down
20 changes: 6 additions & 14 deletions inc/misc/setcheck.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,23 @@
if(!isset($passright)) { $passright = null; }
$SQLimit = null;
if(!isset($Settings['sqltype'])) {
$Settings['sqltype'] = "mysql"; }
$Settings['sqltype'] = "mysqli"; }
$Settings['sqltype'] = strtolower($Settings['sqltype']);
if($Settings['sqltype']!="mysql"&&
$Settings['sqltype']!="mysqli"&&
$Settings['sqltype']!="mysqli_prepare"&&
$Settings['sqltype']!="pdo_mysql"&&
$Settings['sqltype']!="pgsql"&&
$Settings['sqltype']!="pgsql_prepare"&&
$Settings['sqltype']!="pdo_pgsql"&&
$Settings['sqltype']!="sqlite"&&
$Settings['sqltype']!="sqlite3"&&
$Settings['sqltype']!="sqlite3_prepare"&&
$Settings['sqltype']!="pdo_sqlite3"&&
$Settings['sqltype']!="cubrid"&&
$Settings['sqltype']!="cubrid_prepare"&&
$Settings['sqltype']!="pdo_cubrid") {
$Settings['sqltype'] = "mysql"; }
/*if($Settings['sqltype']=="mysql"||
$Settings['sqltype']=="mysqli"||
$Settings['sqltype']=="pdo_mysql"||
$Settings['sqltype']=="sqlite"||
$Settings['sqltype']=="sqlite3"||
$Settings['sqltype']=="pdo_sqlite3"||
$Settings['sqltype']=="cubrid"||
$Settings['sqltype']=="pdo_cubrid") {
$SQLimit = "LIMIT %i,%i"; }
if($Settings['sqltype']=="pgsql"||
$Settings['sqltype']=="pdo_pgsql") {
$SQLimit = "OFFSET %i LIMIT %i"; }*/
$Settings['sqltype'] = "mysqli"; }
if(!isset($Settings['enable_pathinfo'])) {
$Settings['enable_pathinfo'] = "off"; }
if($Settings['enable_pathinfo']!="on"&&
Expand Down
28 changes: 19 additions & 9 deletions inc/misc/sql/cubrid_prepare.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,39 @@ function cubrid_prepare_func_errorno($link = null) {

function cubrid_prepare_func_query($query, $params = [], $link = null) {
global $NumQueriesArray, $SQLStat;
$stmt = isset($link) ? cubrid_prepare($link, $query) : cubrid_prepare($SQLStat, $query);
$db = isset($link) ? $link : $SQLStat;

// Check if the query is an array (query string and parameters)
if (is_array($query)) {
list($query_string, $params) = $query;
} else {
$query_string = $query;
}

// Prepare the query
$stmt = cubrid_prepare($db, $query_string);
if ($stmt === false) {
output_error("SQL Error: " . cubrid_prepare_func_error(), E_USER_ERROR);
output_error("SQL Error (Prepare): " . cubrid_prepare_func_error(), E_USER_ERROR);
return false;
}

// Bind parameters dynamically based on their types
// Bind parameters dynamically
foreach ($params as $key => $value) {
$paramKey = $key + 1; // CUBRID uses 1-based indexing for bind parameters
if (is_int($value)) {
cubrid_bind($stmt, $key + 1, $value, CUBRID_INTEGER);
cubrid_bind($stmt, $paramKey, $value, CUBRID_INTEGER);
} elseif (is_bool($value)) {
cubrid_bind($stmt, $key + 1, $value, CUBRID_BOOL);
cubrid_bind($stmt, $paramKey, $value, CUBRID_BOOL);
} elseif (is_null($value)) {
cubrid_bind($stmt, $key + 1, $value, CUBRID_NULL);
cubrid_bind($stmt, $paramKey, $value, CUBRID_NULL);
} else {
cubrid_bind($stmt, $key + 1, $value, CUBRID_STRING);
cubrid_bind($stmt, $paramKey, $value, CUBRID_STRING);
}
}

// Execute the statement
// Execute the query
if (!cubrid_execute($stmt)) {
output_error("SQL Error: " . cubrid_prepare_func_error(), E_USER_ERROR);
output_error("SQL Error (Execution): " . cubrid_prepare_func_error(), E_USER_ERROR);
return false;
}

Expand Down
9 changes: 8 additions & 1 deletion inc/misc/sql/mysqli_prepare.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,15 @@ function mysqli_prepare_func_query($query, $params = [], $link = null) {

$db = isset($link) ? $link : $SQLStat;

// If the query is provided as an array (query string and parameters)
if (is_array($query)) {
list($query_string, $params) = $query;
} else {
$query_string = $query;
}

// Prepare the statement
$stmt = mysqli_prepare($db, $query);
$stmt = mysqli_prepare($db, $query_string);
if (!$stmt) {
output_error("SQL Error (Prepare): " . mysqli_prepare_func_error($db), E_USER_ERROR);
return false;
Expand Down
74 changes: 32 additions & 42 deletions inc/misc/sql/pdo_sqlite3.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,56 +39,46 @@ function pdo_sqlite3_func_errno($link=null) {

// Execute a query with PDO, with support for positional and named placeholders
function pdo_sqlite3_func_query($query, $link = null) {
global $NumQueries, $SQLStat;
global $NumQueriesArray, $SQLStat;
$db = isset($link) ? $link : $SQLStat;

// Use the appropriate PDO connection
$pdo = isset($link) ? $link : $SQLStat;

// If the query is an array (with query and parameters)
// If the query is an array (query and parameters), extract them
if (is_array($query)) {
list($query_string, $params) = $query;
$stmt = $pdo->prepare($query_string);

// Bind parameters dynamically based on their type
foreach ($params as $key => $value) {
$paramKey = is_int($key) ? $key + 1 : $key; // For positional keys, shift index to start at 1
if (is_int($value)) {
$stmt->bindValue($paramKey, $value, PDO::PARAM_INT);
} elseif (is_bool($value)) {
$stmt->bindValue($paramKey, $value, PDO::PARAM_BOOL);
} elseif (is_null($value)) {
$stmt->bindValue($paramKey, $value, PDO::PARAM_NULL);
} else {
$stmt->bindValue($paramKey, $value, PDO::PARAM_STR);
}
}

// Execute the prepared statement with bound parameters
$result = $stmt->execute();
} else {
$query_string = $query;
}

// Error handling
if ($result === false) {
$errorInfo = $pdo->errorInfo();
output_error("SQL Error: " . $errorInfo[2], E_USER_ERROR);
return false;
}
// Prepare the query
$stmt = $db->prepare($query_string);
if (!$stmt) {
output_error("SQL Error (Prepare): " . sqlite3_prepare_func_error($db), E_USER_ERROR);
return false;
}

++$NumQueries;
return $stmt; // Return the statement for SELECT or data-fetching queries
} else {
// For direct queries without parameters
$result = $pdo->query($query);

// Error handling
if ($result === false) {
$errorInfo = $pdo->errorInfo();
output_error("SQL Error: " . $errorInfo[2], E_USER_ERROR);
return false;
// Bind parameters dynamically
foreach ($params as $key => $value) {
$paramKey = is_int($key) ? $key + 1 : ':' . $key; // Positional vs named placeholders
if (is_int($value)) {
$stmt->bindValue($paramKey, $value, SQLITE3_INTEGER);
} elseif (is_float($value)) {
$stmt->bindValue($paramKey, $value, SQLITE3_FLOAT);
} elseif (is_null($value)) {
$stmt->bindValue($paramKey, $value, SQLITE3_NULL);
} else {
$stmt->bindValue($paramKey, $value, SQLITE3_TEXT);
}
}

++$NumQueries;
return $result;
// Execute the query
$result = $stmt->execute();
if ($result === false) {
output_error("SQL Error (Execution): " . sqlite3_prepare_func_error($db), E_USER_ERROR);
return false;
}

++$NumQueriesArray['sqlite3'];
return $result;
}

// Fetch number of rows for SELECT queries
Expand Down
11 changes: 9 additions & 2 deletions inc/misc/sql/pgsql_prepare.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,16 @@ function pgsql_prepare_func_query($query, $params = [], $link = null) {

$connection = isset($link) ? $link : $SQLStat;

// If the query is provided as an array (query string and parameters)
if (is_array($query)) {
list($query_string, $params) = $query;
} else {
$query_string = $query;
}

// Prepare a statement with a unique name
$stmt_name = md5($query); // Generate a unique statement name based on the query
$prepare = pg_prepare($connection, $stmt_name, $query);
$stmt_name = md5($query_string); // Generate a unique statement name based on the query
$prepare = pg_prepare($connection, $stmt_name, $query_string);

if ($prepare === false) {
output_error("SQL Prepare Error: " . pgsql_prepare_func_error($connection), E_USER_ERROR);
Expand Down
4 changes: 4 additions & 0 deletions inc/misc/sql/sql.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,14 +134,18 @@ function handle_conditional_parts(&$query_string, &$query_vars) {
function get_sql_function_prefix($sqllib) {
$prefixes = array(
'mysql' => 'mysql_func',
'mysql_prepare' => 'mysqli_prepare_func',
'mysqli' => 'mysqli_func',
'pdo_mysql' => 'pdo_mysql_func',
'pgsql' => 'pgsql_func',
'pgsql_prepare' => 'pgsql_prepare_func',
'pdo_pgsql' => 'pdo_pgsql_func',
'sqlite' => 'sqlite_func',
'sqlite3_prepare' => 'sqlite3_prepare_func',
'sqlite3' => 'sqlite3_func',
'pdo_sqlite3' => 'pdo_sqlite3_func',
'cubrid' => 'cubrid_func',
'cubrid_prepare' => 'cubrid_prepare_func',
'pdo_cubrid' => 'pdo_cubrid_func'
);
return isset($prefixes[$sqllib]) ? $prefixes[$sqllib] : null;
Expand Down
14 changes: 12 additions & 2 deletions inc/misc/sql/sqlite3_prepare.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,23 @@ function sqlite3_prepare_func_query($query, $params = [], $link = null) {
global $NumQueriesArray, $SQLStat;
$db = isset($link) ? $link : $SQLStat;

$stmt = $db->prepare($query);
// If the query is an array (query and parameters), extract them
if (is_array($query)) {
list($query_string, $params) = $query;
} else {
$query_string = $query;
}

// Prepare the query
$stmt = $db->prepare($query_string);
if (!$stmt) {
output_error("SQL Error (Prepare): " . sqlite3_prepare_func_error($db), E_USER_ERROR);
return false;
}

// Bind parameters dynamically
foreach ($params as $key => $value) {
$paramKey = is_int($key) ? $key + 1 : ':' . $key;
$paramKey = is_int($key) ? $key + 1 : ':' . $key; // Positional vs named placeholders
if (is_int($value)) {
$stmt->bindValue($paramKey, $value, SQLITE3_INTEGER);
} elseif (is_float($value)) {
Expand All @@ -66,6 +75,7 @@ function sqlite3_prepare_func_query($query, $params = [], $link = null) {
}
}

// Execute the query
$result = $stmt->execute();
if ($result === false) {
output_error("SQL Error (Execution): " . sqlite3_prepare_func_error($db), E_USER_ERROR);
Expand Down
1 change: 1 addition & 0 deletions inc/stats.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
$session_ip_address=$uolresult_array['ip_address'];
//$UserSessInfo = unserialize_session($session_data);
$UserSessInfo = unserialize($serialized_data);
if($UserSessInfo==false) { $UserSessInfo = []; }
if(!isset($UserSessInfo['UserGroup'])) { $UserSessInfo['UserGroup'] = $Settings['GuestGroup']; }
$AmIHiddenUser = "no";
$user_agent_check = false;
Expand Down
6 changes: 3 additions & 3 deletions inc/versioninfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
Copyright 2004-2024 iDB Support - https://idb.osdn.jp/support/category.php?act=view&id=1
Copyright 2004-2024 Game Maker 2k - https://idb.osdn.jp/support/category.php?act=view&id=2
$FileInfo: versioninfo.php - Last Update: 9/24/2024 SVN 1230 - Author: cooldude2k $
$FileInfo: versioninfo.php - Last Update: 9/24/2024 SVN 1231 - Author: cooldude2k $
*/
$File3Name = basename($_SERVER['SCRIPT_NAME']);
if ($File3Name=="versioninfo.php"||$File3Name=="/versioninfo.php") {
Expand All @@ -29,8 +29,8 @@ function version_info($proname, $subver, $ver, $supver, $reltype, $svnver, $show
return $return_var;
}
// Version number and date stuff. :P
$VER1[0] = 0; $VER1[1] = 7; $VER1[2] = 2; $VERFull[1] = $VER1[0].".".$VER1[1].".".$VER1[2];
$VER2[0] = "Alpha"; $VER2[1] = "Al"; $VER2[2] = "SVN"; $SubVerN = 1230; $GitRevPreN = '$Id$';
$VER1[0] = 0; $VER1[1] = 7; $VER1[2] = 4; $VERFull[1] = $VER1[0].".".$VER1[1].".".$VER1[2];
$VER2[0] = "Alpha"; $VER2[1] = "Al"; $VER2[2] = "SVN"; $SubVerN = 1231; $GitRevPreN = '$Id$';
$GitRevN = getGitRevision($GitRevPreN);
$SVNDay[0] = 9; $SVNDay[1] = 24; $SVNDay[2] = 2024; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2];
$AltName = "DF2k"; $AltName2 = "DF2k"; $RName = "iDB"; $SFName = "IntDB";
Expand Down
2 changes: 1 addition & 1 deletion setup/preinstall.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
$Settings['sqltype']!="cubrid"&&
$Settings['sqltype']!="cubrid_prepare"&&
$Settings['sqltype']!="pdo_cubrid") {
$Settings['sqltype'] = "mysql"; } }
$Settings['sqltype'] = "mysqli"; } }
$Settings['idb_time_format'] = "g:i A";
$iDBTheme = "iDB"; $AltiDBTheme = "Gray";
if(isset($Settings['usealtname'])&&$Settings['usealtname']=="yes") {
Expand Down
8 changes: 4 additions & 4 deletions setup/presetup.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,18 @@
<option value="mysql">MySQL Database</option>
<?php } if(function_exists("mysqli_connect")) { ?>
<option value="mysqli">MySQLi Database</option>
<option value="mysqli_prepare">MySQLi Alt Database</option>
<option value="mysqli_prepare">MySQLi Alt Database (Beta!)</option>
<?php } if(function_exists("pg_connect")) { ?>
<option value="pgsql">PostgreSQL Database</option>
<option value="pgsql_prepare">PostgreSQL Alt Database</option>
<option value="pgsql_prepare">PostgreSQL Alt Database (Beta!)</option>
<?php } if(function_exists("sqlite_open")) { ?>
<option value="sqlite">SQLite Database</option>
<?php } if(class_exists('SQLite3')) { ?>
<option value="sqlite3">SQLite 3 Database</option>
<option value="sqlite3_prepare">SQLite 3 Alt Database</option>
<option value="sqlite3_prepare">SQLite 3 Alt Database (Beta!)</option>
<?php } if(function_exists("cubrid_connect")) { ?>
<option value="cubrid">CUBRID Database</option>
<option value="cubrid_prepare">CUBRID Alt Database</option>
<option value="cubrid_prepare">CUBRID Alt Database (Beta!)</option>
<?php } if(extension_loaded("PDO")) {
if(extension_loaded("PDO_MYSQL")) {?>
<option value="pdo_mysql">PDO MySQL Database</option>
Expand Down

0 comments on commit ef01d40

Please sign in to comment.