Update dbwrapper.php. Version 1.5

This commit is contained in:
2018-05-07 07:33:22 +00:00
parent 45cb93991c
commit 55db830eac

View File

@@ -1,5 +1,5 @@
<?php <?php
/* DBWrapper.php - Version 1.4.2 /* DBWrapper.php - Version 1.5
This script is a simple wrapper for SQLite3, MySQL and PgSQL, This script is a simple wrapper for SQLite3, MySQL and PgSQL,
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)
@@ -12,19 +12,19 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
switch ($tdb){ switch ($tdb){
case "mysql": case "mysql":
case "mysqli": case "mysqli":
$return[0] = mysqli_connect($server,$user,$password,$database) or die("Error de conexion"); $return[0] = mysqli_connect($server,$user,$password,$database) or throw new Exception('Database connection error');
$return[1] = "mysqli"; //Return standard mysqli for other funcs. $return[1] = "mysqli"; //Return standard mysqli for other funcs.
break; break;
case "sqlite": case "sqlite":
case "sqlite3": case "sqlite3":
$return[0] = new SQLite3($server); $return[0] = new SQLite3($server);
if (!$return[0]) die ("Error de conexion"); if (!$return[0]) throw new Exception('Database connection error');
$return[1] = "sqlite"; //Return standard SQLite3 for other funcs. $return[1] = "sqlite"; //Return standard SQLite3 for other funcs.
break; break;
case "PostgreSQL": case "PostgreSQL":
case "pg": case "pg":
case "PgSQL": case "PgSQL":
$return[0] = pg_connect("host=$server dbname=$database user=$user password=$password") or die ('Error de conexion: ' . pg_last_error()); $return[0] = pg_connect("host=$server dbname=$database user=$user password=$password") or throw new Exception('Database connection error. ' . pg_last_error());
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs. $return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
break; break;
default: default:
@@ -105,7 +105,7 @@ function dbw_query_fetch_array($conn,$query){
case "PgSQL": case "PgSQL":
$result = pg_query($query); $result = pg_query($query);
if (!$result){return false;} if (!$result){return false;}
$ret = pg_fetch_array($result); //Last error (pg_last_error()) not implemented $ret = pg_fetch_array($result);
break; break;
} }
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>"; //echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
@@ -131,11 +131,16 @@ function dbw_query_goto($conn,$result,$row = 0){
} }
} }
/** Does multiple querys in one command */ /** Does multiple querys in one command
function dbw_multi_query($conn,$query){ * The erasebuffer command, in mysqli is neccesary if its only a insert for avoid problems in next querys
*/
function dbw_multi_query($conn,$query,$erasebuffer = 0){
switch ($conn[1]){ switch ($conn[1]){
case "mysqli": case "mysqli":
mysqli_multi_query($conn[0],$query); mysqli_multi_query($conn[0],$query);
if ($erasebuffer){
while(mysqli_next_result($conn[0])){;} //Erase multiquery output for avoid error in next query
}
break; break;
case "sqlite": case "sqlite":
$conn[0]->exec($query); $conn[0]->exec($query);
@@ -178,6 +183,18 @@ function dbw_num_rows($conn,$result){
} }
} }
/** Escapes conflictive chars for inserting into database */
function dbw_free_result($conn,$result){
switch ($conn[1]){
case "mysqli":
return mysqli_free_result($string);
case "sqlite":
return NULL; //Not neccesary I think
case "PgSQL":
return NULL; //¿?
}
}
/** Close connection */ /** Close connection */
function dbw_close($conn){ function dbw_close($conn){