mirror of
https://gitlab.com/CodeSolutionsProject/DBWrapper.git
synced 2026-02-14 17:11:33 +01:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e2f29f0f23 | |||
| 9dff2902e2 | |||
| abdfb36161 | |||
| 21f7a18add | |||
| bf4d058146 | |||
| eb09b128eb | |||
| e33b7b1ac3 | |||
|
|
1bc58622f2 | ||
| d366ae0f1f | |||
| 3ee9010bee | |||
| 7dd89fd33f | |||
| 55db830eac |
10
README.md
10
README.md
@@ -1,4 +1,4 @@
|
|||||||
# DBWrapper - Version 1.4.2
|
# DBWrapper - Version 2.0.1
|
||||||
|
|
||||||
This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible to use different BD systems without changing the functions.
|
This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible to use different BD systems without changing the functions.
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible
|
|||||||
|
|
||||||
In composer:
|
In composer:
|
||||||
```bash
|
```bash
|
||||||
composer require jkanetwork/dbwrapper "~1.4.2"
|
composer require jkanetwork/dbwrapper "~2.0.1"
|
||||||
```
|
```
|
||||||
|
|
||||||
By hand: Download the php file inside src folder
|
By hand: Download the php file inside src folder
|
||||||
@@ -33,8 +33,11 @@ By hand: Download the php file inside src folder
|
|||||||
resource dbw_query (resource $conn, string $query);
|
resource dbw_query (resource $conn, string $query);
|
||||||
//This does a (non interactive) multiquery. Its used for load from a file/script for example.
|
//This does a (non interactive) multiquery. Its used for load from a file/script for example.
|
||||||
bool dbw_multi_query(resource $conn, string $multiquery);
|
bool dbw_multi_query(resource $conn, string $multiquery);
|
||||||
//This do a query and fetch array, all in one function($typearray optional, see below)
|
//This do a query and fetch array (One restult), all in one function($typearray optional, see below)
|
||||||
resource dbw_query_fetch_array (resource $conn,string $query[, string $typearray]);
|
resource dbw_query_fetch_array (resource $conn,string $query[, string $typearray]);
|
||||||
|
//Return query as array (All results), all in one function($typearray optional, see below)
|
||||||
|
resource dbw_query_fetch_all (resource $conn,string $query[, string $typearray]);
|
||||||
|
//dbw_fetch_all is too for queries)
|
||||||
```
|
```
|
||||||
|
|
||||||
* Using result of a query
|
* Using result of a query
|
||||||
@@ -71,6 +74,7 @@ By hand: Download the php file inside src folder
|
|||||||
-mysql/mysqli -> MySQL or MariaDB
|
-mysql/mysqli -> MySQL or MariaDB
|
||||||
-sqlite/sqlite3 -> Sqlite3
|
-sqlite/sqlite3 -> Sqlite3
|
||||||
-PostgreSQL/PgSQL/pg -> PostgreSQL
|
-PostgreSQL/PgSQL/pg -> PostgreSQL
|
||||||
|
-mssql/sqlsrv -> Microsoft SQL Server (Needs sqlsrv lib installed)
|
||||||
|
|
||||||
$conn is the connection stablished in dbw_connect (ie. $conn = dbw_connect('sqlite','file.sqlite'))
|
$conn is the connection stablished in dbw_connect (ie. $conn = dbw_connect('sqlite','file.sqlite'))
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"keywords": ["mysql", "PgSQL", "sqlite", "wrapper"],
|
"keywords": ["mysql", "PgSQL", "sqlite", "wrapper"],
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"authors": [
|
"authors": [
|
||||||
{"name": "Kevin Puertas Ruiz", "email": "kevin01010@gmail.com"}
|
{"name": "Kevin Puertas Ruiz", "email": "kevinpr@jkanetwork.com"}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.0"
|
"php": "^7.0"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* DBWrapper.php - Version 1.4.2
|
/* DBWrapper.php - Version 2.01
|
||||||
This script is a simple wrapper for SQLite3, MySQL and PgSQL,
|
This script is a simple wrapper for SQLite3, MySQL, PgSQL and MSSQL (sqlsrv),
|
||||||
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
|
||||||
@@ -8,25 +8,42 @@
|
|||||||
|
|
||||||
|
|
||||||
/** Connect with database */
|
/** Connect with database */
|
||||||
function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
|
function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){ //Instance has to be \X,PORT for MSSQL
|
||||||
|
$return = 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 throwExceptionDBConn();
|
||||||
$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]) throwExceptionDBConn();
|
||||||
$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 throwExceptionDBConn();
|
||||||
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
|
$return[1] = "PgSQL"; //Return standard PgSQL for other funcs.
|
||||||
break;
|
break;
|
||||||
|
case "mssql": //MSSQL using sqlsrv
|
||||||
|
case "SQLSRV":
|
||||||
|
case "sqlsrv":
|
||||||
|
$serverName = "$server"; //If instance and port , has to be IP\INSTANCE:PORT
|
||||||
|
$connectionOptions = array(
|
||||||
|
"database" => "$database",
|
||||||
|
"uid" => "$user",
|
||||||
|
"pwd" => "$password"
|
||||||
|
);
|
||||||
|
$conn = sqlsrv_connect($serverName, $connectionOptions);
|
||||||
|
if ($conn === false) {
|
||||||
|
throwExceptionDBConn(var_dump(sqlsrv_errors()));
|
||||||
|
}
|
||||||
|
$return[0] = $conn;
|
||||||
|
$return[1] = "sqlsrv";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
@@ -34,6 +51,10 @@ function dbw_connect($tdb,$server,$database=NULL,$user = NULL,$password=NULL){
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function throwExceptionDBConn($str = "") {
|
||||||
|
throw new Exception('Database connection error '.$str);
|
||||||
|
}
|
||||||
|
|
||||||
/** Escapes conflictive chars for inserting into database */
|
/** Escapes conflictive chars for inserting into database */
|
||||||
function dbw_escape_string($conn,$string){
|
function dbw_escape_string($conn,$string){
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
@@ -43,6 +64,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 "sqlsrv":
|
||||||
|
return str_replace( "'", "''", $string ); //There is not a func for sqlsrv..
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,6 +73,7 @@ function dbw_escape_string($conn,$string){
|
|||||||
/** Make query */
|
/** Make query */
|
||||||
function dbw_query($conn,$query){
|
function dbw_query($conn,$query){
|
||||||
$time = microtime(true);
|
$time = microtime(true);
|
||||||
|
$ret = null;
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
case "mysqli":
|
case "mysqli":
|
||||||
$ret = mysqli_query($conn[0],$query);
|
$ret = mysqli_query($conn[0],$query);
|
||||||
@@ -60,17 +84,21 @@ function dbw_query($conn,$query){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
$ret = pg_query($query);
|
$ret = pg_query($query);
|
||||||
break;
|
break;
|
||||||
|
case "sqlsrv":
|
||||||
|
$ret = sqlsrv_query($conn[0],$query);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Fetch array from query */
|
/** Fetch array from query (Next result) */
|
||||||
function dbw_fetch_array($conn,$result,$typearray = NULL){
|
function dbw_fetch_array($conn,$result,$typearray = NULL){
|
||||||
if ($result == false || $result == NULL){return false;}
|
if ($result == false || $result == NULL){return false;}
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
case "mysqli":
|
case "mysqli":
|
||||||
if ($typearray == NULL || $typearray == "BOTH"){return mysqli_fetch_array($result);}
|
if ($typearray == NULL || $typearray == "BOTH"){return mysqli_fetch_array($result,MYSQLI_BOTH);}
|
||||||
if ($typearray == "ASSOC"){return mysqli_fetch_array($result,MYSQLI_ASSOC);}
|
if ($typearray == "ASSOC"){return mysqli_fetch_array($result,MYSQLI_ASSOC);}
|
||||||
if ($typearray == "NUM"){return mysqli_fetch_array($result,MYSQLI_NUM);}
|
if ($typearray == "NUM"){return mysqli_fetch_array($result,MYSQLI_NUM);}
|
||||||
break;
|
break;
|
||||||
@@ -84,34 +112,68 @@ 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 "sqlsrv":
|
||||||
|
if ($typearray == NULL || $typearray == "BOTH"){return sqlsrv_fetch_array($result,SQLSRV_FETCH_BOTH);}
|
||||||
|
if ($typearray == "ASSOC"){return sqlsrv_fetch_array($result,NULL,SQLSRV_FETCH_ASSOC);}
|
||||||
|
if ($typearray == "NUM"){return sqlsrv_fetch_array($result,NULL,SQLSRV_FETCH_NUMERIC);}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Make query and fetch array */
|
/** Make query and fetch all in a array */
|
||||||
function dbw_query_fetch_array($conn,$query){
|
function dbw_fetch_all($conn,$result,$typearray = NULL){
|
||||||
$time = microtime(true);
|
$time = microtime(true);
|
||||||
|
$ret=null;
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
case "mysqli":
|
case "mysqli":
|
||||||
$result = mysqli_query($conn[0],$query);
|
if ($typearray == NULL || $typearray == "BOTH"){$ret = mysqli_fetch_all($result,MYSQLI_BOTH);}
|
||||||
if (!$result){return false;}
|
if ($typearray == "ASSOC"){$ret = mysqli_fetch_all($result,MYSQLI_ASSOC);}
|
||||||
$ret = mysqli_fetch_array($result);
|
if ($typearray == "NUM"){$ret = mysqli_fetch_all($result,MYSQLI_NUM);}
|
||||||
break;
|
break;
|
||||||
case "sqlite":
|
case "sqlite":
|
||||||
$result = $conn[0]->query($query);
|
$ret = array();
|
||||||
if (!$result){return false;}
|
while ($row = $result->fetchArray()) { //There is not fetchAll in sqlite3, implement it
|
||||||
$ret = $result->fetchArray();
|
$ret[] = ($row);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
$result = pg_query($query);
|
$ret = pg_fetch_all($result,PGSQL_ASSOC);
|
||||||
if (!$result){return false;}
|
break;
|
||||||
$ret = pg_fetch_array($result); //Last error (pg_last_error()) not implemented
|
case 'sqlsrv':
|
||||||
|
$ret = array();
|
||||||
|
if ($typearray == NULL || $typearray == "BOTH"){$a = SQLSRV_FETCH_BOTH;}
|
||||||
|
if ($typearray == NULL || $typearray == "ASSOC"){$a = SQLSRV_FETCH_ASSOC;}
|
||||||
|
if ($typearray == NULL || $typearray == "NUM"){$a = SQLSRV_FETCH_NUMERIC;}
|
||||||
|
while ($row = sqlsrv_fetch_array($result,$a)) {
|
||||||
|
$ret[] = ($row);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Make query and fetch array (For one result) */
|
||||||
|
function dbw_query_fetch_array($conn,$query,$typearray = NULL){
|
||||||
|
$time = microtime(true);
|
||||||
|
$ret=null;
|
||||||
|
$result = dbw_query($conn,$query);
|
||||||
|
$ret = dbw_fetch_array($conn,$result,$typearray);
|
||||||
|
//echo "<p>".$query."->".(microtime(true)-$time)." milisegundos</p>";
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Make query and fetch all in a array */
|
||||||
|
function dbw_query_fetch_all($conn,$query,$typearray = NULL){
|
||||||
|
$time = microtime(true);
|
||||||
|
$ret=null;
|
||||||
|
$result = dbw_query($conn,$query);
|
||||||
|
$ret = dbw_fetch_all($conn,$result,$typearray);
|
||||||
|
//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 */
|
/** Goes a query to $row. $row starts in 0 as first row as if not specified */
|
||||||
function dbw_query_goto($conn,$result,$row = 0){
|
function dbw_query_goto($conn,$result,$row = 0){
|
||||||
switch ($conn[1]){
|
switch ($conn[1]){
|
||||||
@@ -128,14 +190,22 @@ 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 "sqlsrv":
|
||||||
|
sqlsrv_fetch($result,SQLSRV_SCROLL_ABSOLUTE,$row);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 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);
|
||||||
@@ -143,6 +213,10 @@ function dbw_multi_query($conn,$query){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
$null = pg_query($query);
|
$null = pg_query($query);
|
||||||
break;
|
break;
|
||||||
|
case "sqlsrv": //Returns TRUE/FALSE
|
||||||
|
$ret = sqlsrv_prepare($conn[0],$query);
|
||||||
|
$null = sqlsrv_execute($ret);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,6 +229,8 @@ 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 "sqlsrv":
|
||||||
|
return die("Error, not implemented");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,6 +251,23 @@ 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 "sqlsrv":
|
||||||
|
return sqlsrv_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; //¿?
|
||||||
|
case "sqlsrv":
|
||||||
|
return sqlsrv_free_stmt($result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,6 +284,9 @@ function dbw_close($conn){
|
|||||||
case "PgSQL":
|
case "PgSQL":
|
||||||
pg_close($conn[0]);
|
pg_close($conn[0]);
|
||||||
break;
|
break;
|
||||||
|
case "sqlsrv":
|
||||||
|
sqlsrv_close($conn[0]);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,6 +294,7 @@ function dbw_close($conn){
|
|||||||
|
|
||||||
function dbw_fetch_assoc($conn,$result){return dbw_fetch_array($conn,$result,"ASSOC");}
|
function dbw_fetch_assoc($conn,$result){return dbw_fetch_array($conn,$result,"ASSOC");}
|
||||||
function dbw_fetch_row($conn,$result){return dbw_fetch_array($conn,$result,"NUM");}
|
function dbw_fetch_row($conn,$result){return dbw_fetch_array($conn,$result,"NUM");}
|
||||||
|
function dbw_query_fetch_one($conn,$query,$typearray = NULL){return dbw_query_fetch_array($conn,$query,$typearray);}
|
||||||
|
|
||||||
function dbw_data_seek($conn,$result){return dbw_query_goto($conn,$result,$row = 0);}
|
function dbw_data_seek($conn,$result){return dbw_query_goto($conn,$result,$row = 0);}
|
||||||
function dbw_result_seek($conn,$result){return dbw_query_goto($conn,$result,$row = 0);}
|
function dbw_result_seek($conn,$result){return dbw_query_goto($conn,$result,$row = 0);}
|
||||||
|
|||||||
Reference in New Issue
Block a user