Commit c2cd5b76c7b5bdb05c21f70f8d249a0a202a9549
1 parent
a06dd354
Exists in
mysqli
Classe DB
Introdução da classe DB (que utiliza mysqli e evita injeção de SQL), criação do arquivo correspondente, e adaptação dos arquivos inc/database.php para utilizar mysqli a partir dessa classe.
Showing
3 changed files
with
59 additions
and
22 deletions
Show diff stats
@@ -0,0 +1,43 @@ | @@ -0,0 +1,43 @@ | ||
1 | +<?php | ||
2 | +/********************************************************************************** | ||
3 | + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso. | ||
4 | + | ||
5 | + Copyright (C) 2014 Prefeitura Municipal do Natal | ||
6 | + | ||
7 | + Este programa é software livre; você pode redistribuí-lo e/ou | ||
8 | + modificá-lo sob os termos da Licença GPL2. | ||
9 | +***********************************************************************************/ | ||
10 | + | ||
11 | +class DB { | ||
12 | + private static $mysqli; | ||
13 | + private function __construct() {} | ||
14 | + | ||
15 | + static function conn() { | ||
16 | + if (!self::$mysqli) { | ||
17 | + self::$mysqli = new mysqli('p:'.DBHOST, DBUSER, DBPASS, DBNAME); | ||
18 | + } | ||
19 | + return self::$mysqli; | ||
20 | + } | ||
21 | + | ||
22 | + public function execQuery($query) { | ||
23 | + // Resolve o problema da injeção de SQL: | ||
24 | + $rs = mysqli_query(DB::conn(), mysqli_real_escape_string(DB::CONN(), $query)); | ||
25 | + return $rs; | ||
26 | + } | ||
27 | + | ||
28 | + public function rs_to_array($result, $numass=MYSQL_BOTH) { | ||
29 | + $got = array(); | ||
30 | + | ||
31 | + if(mysqli_num_rows($result) == 0) | ||
32 | + return $got; | ||
33 | + | ||
34 | + mysqli_data_seek($result, 0); | ||
35 | + | ||
36 | + while ($row = mysqli_fetch_array($result, $numass)) { | ||
37 | + array_push($got, $row); | ||
38 | + } | ||
39 | + | ||
40 | + return $got; | ||
41 | + } | ||
42 | +} | ||
43 | +?> | ||
0 | \ No newline at end of file | 44 | \ No newline at end of file |
inc/database.php
@@ -9,6 +9,7 @@ | @@ -9,6 +9,7 @@ | ||
9 | ***********************************************************************************/ | 9 | ***********************************************************************************/ |
10 | 10 | ||
11 | require_once("config.php"); | 11 | require_once("config.php"); |
12 | +require_once("../class/db.class.php"); | ||
12 | 13 | ||
13 | function db_open() { | 14 | function db_open() { |
14 | 15 | ||
@@ -25,28 +26,24 @@ function db_close($conn) { | @@ -25,28 +26,24 @@ function db_close($conn) { | ||
25 | //retorna objeto de conexao com o banco para transações | 26 | //retorna objeto de conexao com o banco para transações |
26 | function db_open_trans() | 27 | function db_open_trans() |
27 | { | 28 | { |
28 | - //conecta ao mysqli | ||
29 | - $mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME); | ||
30 | - | 29 | + $mysqli = DB::conn(); |
31 | /* check connection */ | 30 | /* check connection */ |
32 | if (mysqli_connect_errno()) { | 31 | if (mysqli_connect_errno()) { |
33 | die("Falha na conexao: ". mysqli_connect_error()); | 32 | die("Falha na conexao: ". mysqli_connect_error()); |
34 | } | 33 | } |
35 | 34 | ||
36 | $mysqli->autocommit(false); | 35 | $mysqli->autocommit(false); |
37 | - | ||
38 | - return $mysqli; | ||
39 | - | ||
40 | -} | ||
41 | 36 | ||
37 | + return $mysqli; // mantido para facilitar a transição do código para a global | ||
42 | 38 | ||
39 | +} | ||
43 | 40 | ||
44 | function execQuery($query) { | 41 | function execQuery($query) { |
45 | - $conn = db_open(); | ||
46 | - | ||
47 | - $rs = mysql_query($query, $conn); // or die (mysql_error()); | 42 | + $conn = db_open(); |
48 | 43 | ||
49 | - db_close($conn); | 44 | + $rs = mysql_query($query, $conn); // or die (mysql_error()); |
45 | + | ||
46 | + db_close($conn); | ||
50 | return $rs; | 47 | return $rs; |
51 | } | 48 | } |
52 | 49 |
restrito/inc/database.php
@@ -9,6 +9,7 @@ | @@ -9,6 +9,7 @@ | ||
9 | ***********************************************************************************/ | 9 | ***********************************************************************************/ |
10 | 10 | ||
11 | require_once("config.php"); | 11 | require_once("config.php"); |
12 | +include_once(DIR_CLASSES_LEIACESSO."/db.class.php"); | ||
12 | 13 | ||
13 | function db_open() { | 14 | function db_open() { |
14 | 15 | ||
@@ -25,28 +26,24 @@ function db_close($conn) { | @@ -25,28 +26,24 @@ function db_close($conn) { | ||
25 | //retorna objeto de conexao com o banco para transações | 26 | //retorna objeto de conexao com o banco para transações |
26 | function db_open_trans() | 27 | function db_open_trans() |
27 | { | 28 | { |
28 | - //conecta ao mysqli | ||
29 | - $mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME); | ||
30 | - | 29 | + $mysqli = DB::conn(); |
31 | /* check connection */ | 30 | /* check connection */ |
32 | if (mysqli_connect_errno()) { | 31 | if (mysqli_connect_errno()) { |
33 | die("Falha na conexao: ". mysqli_connect_error()); | 32 | die("Falha na conexao: ". mysqli_connect_error()); |
34 | } | 33 | } |
35 | 34 | ||
36 | $mysqli->autocommit(false); | 35 | $mysqli->autocommit(false); |
37 | - | ||
38 | - return $mysqli; | ||
39 | - | ||
40 | -} | ||
41 | 36 | ||
37 | + return $mysqli; // mantido para facilitar a transição do código para a global | ||
42 | 38 | ||
39 | +} | ||
43 | 40 | ||
44 | function execQuery($query) { | 41 | function execQuery($query) { |
45 | - $conn = db_open(); | ||
46 | - | ||
47 | - $rs = mysql_query($query, $conn); // or die (mysql_error()); | 42 | + $conn = db_open(); |
48 | 43 | ||
49 | - db_close($conn); | 44 | + $rs = mysql_query($query, $conn); // or die (mysql_error()); |
45 | + | ||
46 | + db_close($conn); | ||
50 | return $rs; | 47 | return $rs; |
51 | } | 48 | } |
52 | 49 |