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 @@ |
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 | 44 | \ No newline at end of file | ... | ... |
inc/database.php
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | ***********************************************************************************/ |
10 | 10 | |
11 | 11 | require_once("config.php"); |
12 | +require_once("../class/db.class.php"); | |
12 | 13 | |
13 | 14 | function db_open() { |
14 | 15 | |
... | ... | @@ -25,28 +26,24 @@ function db_close($conn) { |
25 | 26 | //retorna objeto de conexao com o banco para transações |
26 | 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 | 30 | /* check connection */ |
32 | 31 | if (mysqli_connect_errno()) { |
33 | 32 | die("Falha na conexao: ". mysqli_connect_error()); |
34 | 33 | } |
35 | 34 | |
36 | 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 | 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 | 47 | return $rs; |
51 | 48 | } |
52 | 49 | ... | ... |
restrito/inc/database.php
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | ***********************************************************************************/ |
10 | 10 | |
11 | 11 | require_once("config.php"); |
12 | +include_once(DIR_CLASSES_LEIACESSO."/db.class.php"); | |
12 | 13 | |
13 | 14 | function db_open() { |
14 | 15 | |
... | ... | @@ -25,28 +26,24 @@ function db_close($conn) { |
25 | 26 | //retorna objeto de conexao com o banco para transações |
26 | 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 | 30 | /* check connection */ |
32 | 31 | if (mysqli_connect_errno()) { |
33 | 32 | die("Falha na conexao: ". mysqli_connect_error()); |
34 | 33 | } |
35 | 34 | |
36 | 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 | 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 | 47 | return $rs; |
51 | 48 | } |
52 | 49 | ... | ... |