From bf4d0581463453eded2dd176f9e27a935482b758 Mon Sep 17 00:00:00 2001 From: JKA Network Date: Tue, 23 Mar 2021 13:12:51 +0000 Subject: [PATCH] Update dbwrapper.php 1.7 (Alpha MSSQL) --- src/dbwrapper.php | 116 ++++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 55 deletions(-) diff --git a/src/dbwrapper.php b/src/dbwrapper.php index 1cd97fe..1dfd848 100644 --- a/src/dbwrapper.php +++ b/src/dbwrapper.php @@ -1,6 +1,6 @@ "$database", + "UID" => "$user", + "PWD" => "$password" + ); + // Establishes the connection + $conn = sqlsrv_connect($server, $connectionOptions); + var_dump($conn); + if ($conn === false) { + throwExceptionDBConn(var_dump(sqlsrv_errors())); + } + $return[0] = $conn; + $return[1] = "mssql"; + break; default: return false; break; @@ -35,8 +50,8 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){ return $return; } -function throwExceptionDBConn() { - throw new Exception('Database connection error'); +function throwExceptionDBConn($str = "") { + throw new Exception('Database connection error '); } /** Escapes conflictive chars for inserting into database */ @@ -48,6 +63,8 @@ function dbw_escape_string($conn,$string){ return SQLite3::escapeString($string); case "PgSQL": return pg_escape_string($string); + case "mssql": + return $string; //Not implemented } } @@ -66,6 +83,9 @@ function dbw_query($conn,$query){ case "PgSQL": $ret = pg_query($query); break; + case "mssql": + $ret = sqlsrv_query($conn, $query); + break; } //echo "

".$query."->".(microtime(true)-$time)." milisegundos

"; return $ret; @@ -90,6 +110,11 @@ function dbw_fetch_array($conn,$result,$typearray = NULL){ if ($typearray == "ASSOC"){return pg_fetch_array($result,NULL,PGSQL_ASSOC);} if ($typearray == "NUM"){return pg_fetch_array($result,NULL,PGSQL_NUM);} break; + case "mssql": + if ($typearray == NULL || $typearray == "BOTH"){return sqlsrv_fetch_array($result, SQLSRV_FETCH_BOTH);} + if ($typearray == "ASSOC"){return sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC);} + if ($typearray == "NUM"){return sqlsrv_fetch_array($result, SQLSRV_FETCH_NUM);} + break; } } @@ -99,79 +124,44 @@ function dbw_fetch_all($conn,$result,$typearray = NULL){ $ret=null; switch ($conn[1]){ case "mysqli": - if ($typearray == NULL || $typearray == "BOTH"){$ret = mysqli_fetch_all($result,MYSQLI_BOTH);} - if ($typearray == "ASSOC"){$ret = mysqli_fetch_all($result,MYSQLI_ASSOC);} - if ($typearray == "NUM"){$ret = mysqli_fetch_all($result,MYSQLI_NUM);} + if ($typearray == NULL || $typearray == "BOTH"){return mysqli_fetch_all($result,MYSQLI_BOTH);} + if ($typearray == "ASSOC"){return mysqli_fetch_all($result,MYSQLI_ASSOC);} + if ($typearray == "NUM"){return mysqli_fetch_all($result,MYSQLI_NUM);} break; case "sqlite": $ret = array(); while ($row = $result->fetchArray()) { //There is not fetchAll in sqlite3, implement it $ret[] = ($row); } + return $ret; break; case "PgSQL": - $ret = pg_fetch_all($result,PGSQL_ASSOC); + return pg_fetch_all($result,PGSQL_ASSOC); + break; + case "mssql": + $ret = array(); + while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_BOTH)) { //There is not fetchAll in mssql, implement it + $ret[] = ($row); + } + return $ret; break; } //echo "

".$query."->".(microtime(true)-$time)." milisegundos

"; - return $ret; } /** Make query and fetch array (For one result) */ function dbw_query_fetch_array($conn,$query,$typearray = NULL){ $time = microtime(true); - $ret=null; - switch ($conn[1]){ - case "mysqli": - $result = mysqli_query($conn[0],$query); - if (!$result){return false;} - if ($typearray == NULL || $typearray == "BOTH"){$ret = mysqli_fetch_array($result,MYSQLI_BOTH);} - if ($typearray == "ASSOC"){$ret = mysqli_fetch_array($result,MYSQLI_ASSOC);} - if ($typearray == "NUM"){$ret = mysqli_fetch_array($result,MYSQLI_NUM);} - break; - case "sqlite": - $result = $conn[0]->query($query); - if (!$result){return false;} - $ret = $result->fetchArray(); - break; - case "PgSQL": - $result = pg_query($query); - if (!$result){return false;} - $ret = pg_fetch_array($result,PGSQL_ASSOC); - break; - } - //echo "

".$query."->".(microtime(true)-$time)." milisegundos

"; - return $ret; + $result = dbw_query($conn,$query); + return dbw_fetch_array($conn,$result,$typearray); } /** Make query and fetch all in a array */ function dbw_query_fetch_all($conn,$query,$typearray = NULL){ $time = microtime(true); - $ret=null; - switch ($conn[1]){ - case "mysqli": - $result = mysqli_query($conn[0],$query); - if (!$result){return false;} - if ($typearray == NULL || $typearray == "BOTH"){$ret = mysqli_fetch_all($result,MYSQLI_BOTH);} - if ($typearray == "ASSOC"){$ret = mysqli_fetch_all($result,MYSQLI_ASSOC);} - if ($typearray == "NUM"){$ret = mysqli_fetch_all($result,MYSQLI_NUM);} - break; - case "sqlite": - $result = $conn[0]->query($query); - if (!$result){return false;} - $ret = array(); - while ($row = $result->fetchArray()) { //There is not fetchAll in sqlite3, implement it - $ret[] = ($row); - } - break; - case "PgSQL": - $result = pg_query($query); - if (!$result){return false;} - $ret = pg_fetch_all($result,PGSQL_ASSOC); - break; - } + $result = dbw_query($conn,$query); + return dbw_fetch_all($conn,$result,$typearray); //echo "

".$query."->".(microtime(true)-$time)." milisegundos

"; - return $ret; } @@ -191,6 +181,8 @@ function dbw_query_goto($conn,$result,$row = 0){ case "PgSQL": pg_result_seek($result, $row); break; + case "mssql": + return sqlsrv_fetch($result,SQLSRV_SCROLL_ABSOLUTE,$row); } } @@ -211,6 +203,10 @@ function dbw_multi_query($conn,$query,$erasebuffer = 0){ case "PgSQL": $null = pg_query($query); break; + case "mssql": + //Not implemented + throw new Exception('Not supported by MSSQL directly'); + break; } } @@ -223,6 +219,10 @@ function dbw_last_id($conn){ return $conn[0]->lastInsertRowID(); case "PgSQL": return pg_fetch_array(pg_query("SELECT lastval();"))[0]; + case "mssql": + //Not implemented + throw new Exception('Not supported by MSSQL directly'); + break; } } @@ -243,6 +243,8 @@ function dbw_num_rows($conn,$result){ return $count; case "PgSQL": return pg_num_rows ($result); + case "mssql": + return sqlsrv_num_rows ($result); } } @@ -255,6 +257,8 @@ function dbw_free_result($conn,$result){ return NULL; //Not neccesary I think case "PgSQL": return NULL; //¿? + case "msqql": + return sqlsrv_free_result($result); } } @@ -271,6 +275,8 @@ function dbw_close($conn){ case "PgSQL": pg_close($conn[0]); break; + case "mssql": + sqlsrv_close($conn[0]); } }