mirror of
https://gitlab.com/CodeSolutionsProject/DBWrapper.git
synced 2026-02-14 17:11:33 +01:00
Update dbwrapper.php 1.7 (Alpha MSSQL)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* DBWrapper.php - Version 1.6
|
/* DBWrapper.php - Version 1.7
|
||||||
This script is a simple wrapper for SQLite3, MySQL and PgSQL,
|
This script is a simple wrapper for SQLite3, MySQL, PgSQL and MSSQL (Alpha),
|
||||||
for make possible to use different BD systems without changing the functions.
|
for make possible to use different BD systems without changing the functions.
|
||||||
For use, in dbw_connect you have to specify type of database (see below)
|
For use, in dbw_connect you have to specify type of database (see below)
|
||||||
Read README.md for details of every function and use
|
Read README.md for details of every function and use
|
||||||
@@ -28,6 +28,21 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
|
|||||||
$return[0] = pg_connect("host=$server dbname=$database user=$user password=$password") or throwExceptionDBConn();
|
$return[0] = pg_connect("host=$server dbname=$database user=$user password=$password") or throwExceptionDBConn();
|
||||||
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
|
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
|
||||||
break;
|
break;
|
||||||
|
case 'mssql':
|
||||||
|
$connectionOptions = array(
|
||||||
|
"Database" => "$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:
|
default:
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
@@ -35,8 +50,8 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function throwExceptionDBConn() {
|
function throwExceptionDBConn($str = "") {
|
||||||
throw new Exception('Database connection error');
|
throw new Exception('Database connection error ');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Escapes conflictive chars for inserting into database */
|
/** Escapes conflictive chars for inserting into database */
|
||||||
@@ -48,6 +63,8 @@ function dbw_escape_string($conn,$string){
|
|||||||
return SQLite3::escapeString($string);
|
return SQLite3::escapeString($string);
|
||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
return pg_escape_string($string);
|
return pg_escape_string($string);
|
||||||
|
case "mssql":
|
||||||
|
return $string; //Not implemented
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +83,9 @@ function dbw_query($conn,$query){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
$ret = pg_query($query);
|
$ret = pg_query($query);
|
||||||
break;
|
break;
|
||||||
|
case "mssql":
|
||||||
|
$ret = sqlsrv_query($conn, $query);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
return $ret;
|
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 == "ASSOC"){return pg_fetch_array($result,NULL,PGSQL_ASSOC);}
|
||||||
if ($typearray == "NUM"){return pg_fetch_array($result,NULL,PGSQL_NUM);}
|
if ($typearray == "NUM"){return pg_fetch_array($result,NULL,PGSQL_NUM);}
|
||||||
break;
|
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;
|
$ret=null;
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
case "mysqli":
|
case "mysqli":
|
||||||
if ($typearray == NULL || $typearray == "BOTH"){$ret = mysqli_fetch_all($result,MYSQLI_BOTH);}
|
if ($typearray == NULL || $typearray == "BOTH"){return mysqli_fetch_all($result,MYSQLI_BOTH);}
|
||||||
if ($typearray == "ASSOC"){$ret = mysqli_fetch_all($result,MYSQLI_ASSOC);}
|
if ($typearray == "ASSOC"){return mysqli_fetch_all($result,MYSQLI_ASSOC);}
|
||||||
if ($typearray == "NUM"){$ret = mysqli_fetch_all($result,MYSQLI_NUM);}
|
if ($typearray == "NUM"){return mysqli_fetch_all($result,MYSQLI_NUM);}
|
||||||
break;
|
break;
|
||||||
case "sqlite":
|
case "sqlite":
|
||||||
$ret = array();
|
$ret = array();
|
||||||
while ($row = $result->fetchArray()) { //There is not fetchAll in sqlite3, implement it
|
while ($row = $result->fetchArray()) { //There is not fetchAll in sqlite3, implement it
|
||||||
$ret[] = ($row);
|
$ret[] = ($row);
|
||||||
}
|
}
|
||||||
|
return $ret;
|
||||||
break;
|
break;
|
||||||
case "PgSQL":
|
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;
|
break;
|
||||||
}
|
}
|
||||||
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
return $ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Make query and fetch array (For one result) */
|
/** Make query and fetch array (For one result) */
|
||||||
function dbw_query_fetch_array($conn,$query,$typearray = NULL){
|
function dbw_query_fetch_array($conn,$query,$typearray = NULL){
|
||||||
$time = microtime(true);
|
$time = microtime(true);
|
||||||
$ret=null;
|
$result = dbw_query($conn,$query);
|
||||||
switch ($conn[1]){
|
return dbw_fetch_array($conn,$result,$typearray);
|
||||||
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 "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
|
||||||
return $ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Make query and fetch all in a array */
|
/** Make query and fetch all in a array */
|
||||||
function dbw_query_fetch_all($conn,$query,$typearray = NULL){
|
function dbw_query_fetch_all($conn,$query,$typearray = NULL){
|
||||||
$time = microtime(true);
|
$time = microtime(true);
|
||||||
$ret=null;
|
$result = dbw_query($conn,$query);
|
||||||
switch ($conn[1]){
|
return dbw_fetch_all($conn,$result,$typearray);
|
||||||
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;
|
|
||||||
}
|
|
||||||
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
return $ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -191,6 +181,8 @@ function dbw_query_goto($conn,$result,$row = 0){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
pg_result_seek($result, $row);
|
pg_result_seek($result, $row);
|
||||||
break;
|
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":
|
case "PgSQL":
|
||||||
$null = pg_query($query);
|
$null = pg_query($query);
|
||||||
break;
|
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();
|
return $conn[0]->lastInsertRowID();
|
||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
return pg_fetch_array(pg_query("SELECT lastval();"))[0];
|
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;
|
return $count;
|
||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
return pg_num_rows ($result);
|
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
|
return NULL; //Not neccesary I think
|
||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
return NULL; //¿?
|
return NULL; //¿?
|
||||||
|
case "msqql":
|
||||||
|
return sqlsrv_free_result($result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,6 +275,8 @@ function dbw_close($conn){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
pg_close($conn[0]);
|
pg_close($conn[0]);
|
||||||
break;
|
break;
|
||||||
|
case "mssql":
|
||||||
|
sqlsrv_close($conn[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user