clsBanco.inc.php
3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* i-Educar - Sistema de gestão escolar
*
* Copyright (C) 2006 Prefeitura Municipal de Itajaí
* <ctima@itajai.sc.gov.br>
*
* Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
* sob os termos da Licença Pública Geral GNU conforme publicada pela Free
* Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
* qualquer versão posterior.
*
* Este programa é distribuído na expectativa de que seja útil, porém, SEM
* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU
* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
* do GNU para mais detalhes.
*
* Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
* com este programa; se não, escreva para a Free Software Foundation, Inc., no
* endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
*
* @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br>
* @category i-Educar
* @license @@license@@
* @package iEd
* @since Arquivo disponível desde a versão 1.0.0
* @version $Id$
*/
require_once '../includes/bootstrap.php';
require_once 'include/clsBancoPgSql.inc.php';
/**
* clsBanco class.
*
* @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br>
* @category i-Educar
* @license @@license@@
* @package iEd
* @since Classe disponível desde a versão 1.0.0
* @version @@package_version@@
*/
class clsBanco extends clsBancoSQL_
{
/**
* Construtor (PHP 4).
*/
public function clsBanco($strDataBase = FALSE)
{
parent::__construct($strDataBase);
global $coreExt;
$config = $coreExt['Config']->app->database;
$this->setHost($config->hostname);
$this->setDbname($config->dbname);
$this->setPassword($config->password);
$this->setUser($config->username);
$this->setPort($config->port);
}
/**
* Retorna a quantidade de registros de uma tabela baseado no objeto que a
* abstrai. Este deve ter um atributo público Object->_tabela.
*
* @param mixed Objeto que abstrai a tabela
* @param string Nome da coluna para cálculo COUNT()
* @return int Quantidade de registros da tabela
*/
public function doCountFromObj($obj, $column = '*')
{
if ($obj->_tabela == NULL) {
return FALSE;
}
$sql = sprintf('SELECT COUNT(%s) FROM %s', $column, $obj->_tabela);
$this->Consulta($sql);
return (int)$this->UnicoCampo($sql);
}
/**
* Retorna os dados convertidos para a sintaxe SQL aceita por ext/pgsql.
*
* <code>
* <?php
* $data = array(
* 'id' => 1,
* 'hasChild' = FALSE
* );
*
* $clsBanco->getDbValuesFromArray($data);
* // array(
* // 'id' => 1,
* // 'hasChild' => 'f'
* // );
* </code>
*
* Apenas o tipo booleano é convertido.
*
* @param array $data Array associativo com os valores a serem convertidos.
* @return array
*/
public function formatValues(array $data)
{
$db = array();
foreach ($data as $key => $val) {
if (is_bool($val)) {
$db[$key] = $this->_formatBool($val);
continue;
}
$db[$key] = $val;
}
return $db;
}
/**
* Retorna um valor formatado de acordo com o tipo output do tipo booleano
* no PostgreSQL.
*
* @link http://www.postgresql.org/docs/8.2/interactive/datatype-boolean.html
* @link http://www.php.net/manual/en/function.pg-query-params.php#78072
* @param mixed $val
* @return string "t" para TRUE e "f" para false
*/
protected function _formatBool($val)
{
return ($val == TRUE ? 't' : 'f');
}
}