]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Graph/external/jpgraph/src/utils/jpdocgen/jpdb.php
Se mejora un poco los ALT para navegadores de texto.
[mecon/meconlib.git] / lib / MECON / Graph / external / jpgraph / src / utils / jpdocgen / jpdb.php
1 <?php
2 //==============================================================================
3 // Name:        JPDB.PHP
4 // Description: OO DB interface. Currently geared towards mysql
5 // Created:     2002-03-17
6 // Author:      johanp@aditus.nu
7 // Version:     $Id: jpdb.php,v 1.3 2002/08/25 22:03:51 aditus Exp $
8 //
9 // License:     QPL 1.0
10 // Copyright (C) 2001,2002 Johan Persson
11 //==============================================================================
12
13
14 // SQL Result object. Returned after a query.
15 class DBResult {
16     var $iDB;
17     var $iRes;
18     var $iDBRow,$iDBObj;
19     var $iNumRows = -1;
20     var $iNumFields = -1;
21
22     function DBResult($aDB,$aRes) {
23         $this->iDB = $aDB;
24         $this->iRes = $aRes;
25     }
26
27     function Fetch() {
28         $this->iDBRow = mysql_fetch_array($this->iRes);
29         return $this->iDBRow;
30     }
31
32     function FetchObj() {
33         $this->iDBObj = mysql_fetch_object($this->iRes);
34         return $this->iDBObj;
35     }
36
37     function NumRows() {
38         if( $this->iNumRows == -1 )
39             $this->iNumRows = mysql_num_rows($this->iRes);
40         return $this->iNumRows;
41     }
42
43     function NumFields() {
44         if( $this->iNumFields == -1 )
45             $this->iNumFields = mysql_num_fields($this->iRes);
46         return $this->iNumFields;
47     }
48
49     function GetFieldNames() {
50         $nbr = $this->NumFields();
51         $flds = array();
52         while( $nbr > 0 ) {
53             $meta = mysql_fetch_field($this->iRes);
54             $flds[] = $meta->name;
55             --$nbr;
56         }
57     }
58 }
59
60
61 // Abstraction for a DB server
62 class DBServer {
63
64     var $iDBName;
65     var $iLastErr;
66
67     var $iUserID ;
68     var $iUserPWD ;
69     var $iServer ;
70     var $iLink;
71     var $iDie = true;
72
73     // If DryRun then no action on DB will be taken and all
74     // DB calls will succeed
75     var $iDryRun = false ;
76  
77     function DBServer($aUser,$aPWD,$aServer="localhost") {
78         if( $this->iDryRun ) {
79             $this->iUserID = "DryRunUser";
80             $this->iUserPWD = "DryRunPWD";
81             $this->iServer = "DryRunServer";
82             return true;
83         }
84         $this->iLink = @mysql_connect($aServer,$aUser,$aPWD);
85         if( $this->iLink == false ) {
86             $this->SetError("Can't connect to server $aServer as $aUser");
87             return false;
88         }
89         $this->iUserID = $aUser;
90         $this->iUserPWD = $aPWD;
91         $this->iServer = $aServer;
92         return true;
93     }
94
95     function SetDB($aDBName,$aIgnoreError=false) {
96         if( $this->iDryRun ) {
97             $this->iDBName = "DryRunDBName";
98             return true;
99         }
100         $this->iDBName = $aDBName;
101         if( @mysql_select_db($aDBName) )
102             return true;
103         else {
104             if( !$aIgnoreError ) 
105                 $this->SetError("Can't select database $aDBName.");
106             return false;
107         }
108     }
109
110     function SetDryRun($aFlg=true) {
111         $this->iDryRun = $aFlg;
112     }
113
114     function SetError($aMsg) {
115         if( $this->iDryRun ) {
116             return;
117         }
118         if( $this->iLink )
119             $err = mysql_error($this->iLink);
120         else 
121             $err="";
122         $this->iLastErr = "<b>DB ERROR:</b>".$aMsg."<br>MySQL Error:".$err;
123         if( $this->iDie ) 
124             die($this->iLastErr);
125     }
126
127
128     function Query($aQuery,$aIgnoreError=false) {
129         if( $this->iDryRun ) {
130             return true;
131         }
132         $res=@mysql_query($aQuery,$this->iLink);
133         if( !$res && !$aIgnoreError ) {
134             $this->SetError("Error in query:<br> $aQuery<P>");
135             return false;
136         }
137         if( $res > 0 )
138                 return new DBResult($this,$res);
139         return false;
140     }
141
142     function LastIdx() {
143         if( $this->iDryRun ) {
144             return 0;
145         }
146         return mysql_insert_id($this->iLink);
147     }
148
149     function Create($aDBName) {
150         mysql_create_db($aDBName,$this->iLink);
151     }
152     
153     function Close() {
154         if( $this->iDryRun ) {
155             return;
156         }
157         mysql_close($this->iLink);
158     }
159
160     function GetTables() {
161         $r = mysql_list_tables($this->iDBName,$this->iLink);
162         $n = mysql_num_rows($r);
163         $tn = array();
164         for( $i=0; $i < $n; ++$i ) {
165             $tn[$i] = mysql_tablename($r,$i);
166         }
167         return $tn;
168     }
169
170     function GetFields($aTbl) {
171         $r = mysql_list_fields($this->iDBName,$aTbl,$this->iLink);
172         $n = mysql_num_fields($r);
173         $fn = array();
174         for( $i=0; $i < $n; ++$i ) {
175             $fn[$i] = mysql_field_name($r,$i).' : '. mysql_field_type($r,$i); 
176         }
177         return $fn;
178     }
179
180     function GetTablesFields($aFlgPrint=false) {
181         $tblnames = $this->GetTables();
182         $n = count($tblnames);
183         $res = array();
184         for( $i=0; $i < $n; ++$i ) {
185             $fn = $this->GetFields($tblnames[$i]);
186             if( $aFlgPrint ) {
187                 echo '<b>'.$tblnames[$i].'</b><br>';
188                 $nn = count($fn);
189                 for( $j=0; $j < $nn; ++$j ) {
190                     echo $fn[$j]; //[0]. ': <font color=blue>' . $fn[$j][1].'</font><br>';
191                 }
192                 echo '<p>';
193             }
194             $res[$i] = array($tblnames[$i],$fn);
195         }
196         return $res;
197     }
198 }      
199
200 ?>