diff --git a/README.md b/README.md index df89b91..ccd4ce2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# DBWrapper - Version 1.4 +# DBWrapper - Version 1.4.1 This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible to use different BD systems without changing the functions. @@ -21,25 +21,27 @@ This script is a simple wrapper for SQLite3, MySQL and PgSQL, for make possible ```php //Does a query (array, or false if error) - array 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. bool dbw_multi_query(resource $conn, string $multiquery); //This do a query and fetch array, all in one function($typearray optional, see below) - array dbw_query_fetch_array (resource $conn,string $query[, string $typearray]); + resource dbw_query_fetch_array (resource $conn,string $query[, string $typearray]); ``` * Using result of a query ```php //Fetch a row. ($typearray optional, see below) - array dbw_fetch_array (resource $conn,array $result[, string $typearray]); + array dbw_fetch_array (resource $conn,resource $result[, string $typearray]); //Wrappers of dbw_fetch_array with row or assoc arguments - array dbw_fetch_row(resource $conn,array $result); - array dbw_fetch_assoc(resource $conn,array $result); - //Goto X result of a query. If row is not specified, will be first row, 0 - bool array dbw_query_goto(resource $conn,array $result[,int $row]) ; + array dbw_fetch_row(resource $conn,resource $result); + array dbw_fetch_assoc(resource $conn,resource $result); + //Goto X result of a query (Not retrieve it). If row is not specified, will be first row, 0 + bool dbw_query_goto(resource $conn,resource $result[,int $row]); + // Wrappers to dbw_query_goto are dbw_data_seek and dbw_result_seek for compatibility + //Return number of results of a query - int dbw_num_rows(resource $conn, array $result); + int dbw_num_rows(resource $conn, resource $result); ``` * Without a query diff --git a/src/dbwrapper.php b/src/dbwrapper.php index f91ff98..46d1665 100644 --- a/src/dbwrapper.php +++ b/src/dbwrapper.php @@ -1,43 +1,9 @@ some values are optional, - except $tdb and $server. $server is location in SQLite3 - dbw_close ($conn) -> Closes connection - - dbw_query ($conn,$query) -> Does a query - dbw_multi_query($conn,$multiquery) -> This does a multiquery without returning nothing. - Its used for load from a file/script - dbw_query_fetch_array ($conn,$query[,$typearray]) -> This do a query and fetch array, all in one function - ($typearray optional, see below) - - --After here, this functions works with result of a query-- - - dbw_fetch_array ($conn,$result[,$typearray]) -> Fetch a row. ($typearray optional, see below) - dbw_escape_string($conn,$string) -> Escapes conflictive chars for inserting into database - - dbw_fetch_row and dbw_fetch_assoc ($conn,$result) -> Wrappers of dbw_fetch_array with row or assoc arguments - dbw_query_goto($conn,$result[,$row]) -> Goto X result of a query. If row is not specified, will be first row, 0 - dbw_num_rows($conn,$result) -> Return number of results of a query - - --This doesnt need a query-- - dbw_last_id($conn) -> Returns last insert ID - dbw_insert_id($conn) -> Alias of dbw_last_id - - - $tdb (Type of database) can be: - -mysql/mysqli -> MySQL or MariaDB - -sqlite/sqlite3 -> Sqlite3 - -PostgreSQL/PgSQL/pg -> PostgreSQL - - $conn is the connection stablished in dbw_connect (ie. $conn = dbw_connect('sqlite','file.sqlite')) - $typearray is the form of array is returned, and not writed is default: - -ASSOC -> Associative indexes - -NUM -> Numeric indexes - -BOTH -> (Default) Both types of indexes + Read README.md for details of every function and use */ @@ -46,24 +12,24 @@ 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[1] = "mysqli"; //Return standard mysqli for other funcs. - break; + $return[0] = mysqli_connect($server,$user,$password,$database) or die("Error de conexion"); + $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"); - $return[1] = "sqlite"; //Return standard SQLite3 for other funcs. - break; + $return[0] = new SQLite3($server); + if (!$return[0]) die ("Error de conexion"); + $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[1] = "PgSQL"; //Return standard PgSQL for other funcs. - break; + $return[0] = pg_connect("host=$server dbname=$database user=$user password=$password") or die ('Error de conexion: ' . pg_last_error()); + $return[1] = "PgSQL"; //Return standard PgSQL for other funcs. + break; default: return false; - break; + break; } return $return; } @@ -86,16 +52,10 @@ function dbw_query($conn,$query){ switch ($conn[1]){ case "mysqli": return mysqli_query($conn[0],$query); - break; case "sqlite": return $conn[0]->query($query); - break; case "PgSQL": return pg_query($query); //Last error (pg_last_error()) not implemented - break; - default: - return false; - break; } } @@ -118,9 +78,6 @@ function dbw_fetch_array($conn,$result,$typearray = NULL){ if ($typearray == "ASSOC"){return pg_fetch_array($result,NULL,PGSQL_ASSOC);} if ($typearray == "NUM"){return pg_fetch_array($result,NULL,PGSQL_NUM);} break; - default: - return false; - break; } } @@ -150,17 +107,17 @@ function dbw_query_goto($conn,$result,$row = 0){ switch ($conn[1]){ case "mysqli": mysqli_data_seek($result,$row); - break; + break; case "sqlite": $result->reset(); $count = 0; while ($count != $row){ $result->fetchArray(); } - break; + break; case "PgSQL": pg_result_seek($result, $row); - break; + break; } } @@ -169,13 +126,13 @@ function dbw_multi_query($conn,$query){ switch ($conn[1]){ case "mysqli": mysqli_multi_query($conn[0],$query); - break; + break; case "sqlite": $conn[0]->exec($query); - break; + break; case "PgSQL": - die ("No soportado aun"); // TODO - break; + $null = pg_query($query); + break; } } @@ -184,13 +141,10 @@ function dbw_last_id($conn){ switch ($conn[1]){ case "mysqli": return mysqli_insert_id($conn[0]); - break; case "sqlite": return $conn[0]->lastInsertRowID(); - break; case "PgSQL": return pg_fetch_array(pg_query("SELECT lastval();"))[0]; - break; } } @@ -200,13 +154,10 @@ function dbw_num_rows($conn,$result){ switch ($conn[1]){ case "mysqli": return mysqli_num_rows($result); - break; case "sqlite": - die ("No soportado aun"); // TODO - break; + return $result->numRows(); case "PgSQL": - die ("No soportado aun"); // TODO - break; + return pg_num_rows ($result); } } @@ -216,13 +167,13 @@ function dbw_close($conn){ switch ($conn[1]){ case "mysqli": mysqli_close($conn[0]); - break; + break; case "sqlite": $conn[0]->close(); - break; + break; case "PgSQL": pg_close($conn[0]); - break; + break; } } @@ -230,6 +181,10 @@ function dbw_close($conn){ 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_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_insert_id($conn){return dbw_last_id($conn);} ?> \ No newline at end of file