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
/* DBWrapper.php - Version 1.4.2
/* DBWrapper.php - Version 1.5
This script is a simple wrapper for SQLite3, MySQL and PgSQL,
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)
@@ -12,19 +12,19 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
switch ($tdb){
case "mysql":
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.
break;
case "sqlite":
case "sqlite3":
$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.
break;
case "PostgreSQL":
case "pg":
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.
break;
default:
@@ -105,7 +105,7 @@ function dbw_query_fetch_array($conn,$query){
case "PgSQL":
$result = pg_query($query);
if (!$result){return false;}
$ret = pg_fetch_array($result); //Last error (pg_last_error()) not implemented
$ret = pg_fetch_array($result);
break;
}
//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 */
function dbw_multi_query($conn,$query){
/** Does multiple querys in one command
* 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]){
case "mysqli":
mysqli_multi_query($conn[0],$query);
if ($erasebuffer){
while(mysqli_next_result($conn[0])){;} //Erase multiquery output for avoid error in next query
}
break;
case "sqlite":
$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 */
function dbw_close($conn){