10 Commits
1.4.1 ... 1.5.0

Author SHA1 Message Date
d366ae0f1f Update README.md 2018-05-16 13:37:18 +00:00
3ee9010bee Update README.md 2018-05-16 13:36:26 +00:00
7dd89fd33f Update dbwrapper.php. Fix Throw 2018-05-07 07:35:51 +00:00
55db830eac Update dbwrapper.php. Version 1.5 2018-05-07 07:33:22 +00:00
45cb93991c Update README.md for 1.4.2 2018-03-31 12:21:47 +00:00
69a9f230da Emulating num_rows for sqlite3 when is needed (Sqlite3 doesn't have that natively) 2018-03-31 12:21:13 +00:00
b738eda270 License like https://spdx.org/licenses/ 2018-01-30 22:52:45 +00:00
926a16ef65 Update README.md 2017-10-22 17:04:37 +00:00
Jose Luis “JoseluCross” Garrido Labrador
4a4b641dc6 Update README.md 2017-09-21 23:31:24 +00:00
joselucross
8098979bdf Update README.md 2017-09-22 01:27:32 +02:00
3 changed files with 69 additions and 22 deletions

View File

@@ -1,7 +1,16 @@
# DBWrapper - Version 1.4.1
# DBWrapper - Version 1.5.0
This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible to use different BD systems without changing the functions.
## Installation
In composer:
```bash
composer require jkanetwork/dbwrapper "~1.5.0"
```
By hand: Download the php file inside src folder
## Avalible functions:
* To connect

View File

@@ -3,7 +3,7 @@
"type": "library",
"description": "MySQL, PgSQL and SQLite wrapper",
"keywords": ["mysql", "PgSQL", "sqlite", "wrapper"],
"license": "APACHE",
"license": "Apache-2.0",
"authors": [
{"name": "Kevin Puertas Ruiz", "email": "kevin01010@gmail.com"}
],

View File

@@ -1,5 +1,5 @@
<?php
/* DBWrapper.php - Version 1.4.1
/* 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 throwExceptionDBConn();
$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]) throwExceptionDBConn();
$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 throwExceptionDBConn();
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
break;
default:
@@ -34,6 +34,10 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
return $return;
}
function throwExceptionDBConn() {
throw new Exception('Database connection error');
}
/** Escapes conflictive chars for inserting into database */
function dbw_escape_string($conn,$string){
switch ($conn[1]){
@@ -49,14 +53,20 @@ function dbw_escape_string($conn,$string){
/** Make query */
function dbw_query($conn,$query){
$time = microtime(true);
switch ($conn[1]){
case "mysqli":
return mysqli_query($conn[0],$query);
$ret = mysqli_query($conn[0],$query);
break;
case "sqlite":
return $conn[0]->query($query);
$ret = $conn[0]->query($query);
break;
case "PgSQL":
return pg_query($query); //Last error (pg_last_error()) not implemented
$ret = pg_query($query);
break;
}
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
return $ret;
}
/** Fetch array from query */
@@ -83,23 +93,27 @@ function dbw_fetch_array($conn,$result,$typearray = NULL){
/** Make query and fetch array */
function dbw_query_fetch_array($conn,$query){
$time = microtime(true);
switch ($conn[1]){
case "mysqli":
$query = mysqli_query($conn[0],$query);
if ($query == false || $query == NULL){return false;}
return mysqli_fetch_array($query);
$result = mysqli_query($conn[0],$query);
if (!$result){return false;}
$ret = mysqli_fetch_array($result);
break;
case "sqlite":
$query = $conn[0]->query($query);
if ($query == false || $query == NULL){return false;}
return $query->fetchArray();
$result = $conn[0]->query($query);
if (!$result){return false;}
$ret = $result->fetchArray();
break;
case "PgSQL":
$query = pg_query($query);
if ($query == false || $query == NULL){return false;}
return pg_fetch_array($query); //Last error (pg_last_error()) not implemented
$result = pg_query($query);
if (!$result){return false;}
$ret = pg_fetch_array($result);
break;
}
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
return $ret;
}
/** Goes a query to $row. $row starts in 0 as first row as if not specified */
@@ -121,11 +135,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);
@@ -155,12 +174,31 @@ function dbw_num_rows($conn,$result){
case "mysqli":
return mysqli_num_rows($result);
case "sqlite":
return $result->numRows();
//Emulating num_rows. Is faster to use a COUNT(*), but for make it work...
$count=0;
$result->reset(); //Reset pointer
while($row = $result->fetchArray(SQLITE3_ASSOC)){
$count++;
}
$result->reset(); //Reset pointer
return $count;
case "PgSQL":
return pg_num_rows ($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){