more internationalization and input validation project
[openemr.git] / library / sql.inc
blob1016ff62221eadb676a801be68557c0ac506e8e3
1 <?php
3 include_once(dirname(__FILE__) . "/sqlconf.php");
4 require_once(dirname(__FILE__) . "/adodb/adodb.inc.php");
6 if (!defined('ADODB_FETCH_ASSOC')) define('ADODB_FETCH_ASSOC', 2);
7 $database = NewADOConnection("mysql");
8 $database->PConnect($host, $login, $pass, $dbase);
10 // Modified 5/2009 by BM for UTF-8 project ---------
11 if (!$disable_utf8_flag) {
12  $success_flag = $database->Execute("SET NAMES 'utf8'");
13   if (!$success_flag) {
14    error_log("PHP custom error: from openemr library/sql.inc  - Unable to set up UTF8 encoding with mysql database: ".$database->ErrorMsg(), 0);
15   }
17 // -------------------------------------------------
19 $GLOBALS['adodb']['db'] = $database;
20 $GLOBALS['dbh'] = $database->_connectionID;
22 //fmg: This makes the login screen informative when no connection can be made
23 if (!$GLOBALS['dbh']) {
24   //try to be more helpful
25   if ($host == "localhost") {
26     echo "Check that mysqld is running.<p>";
27   } else {
28     echo "Check that you can ping the server '$host'.<p>";
29   }//if local
30   HelpfulDie("Could not connect to server!", mysql_error($GLOBALS['dbh']));
31   exit;
32 }//if no connection
34 function sqlConnect($login,$pass,$dbase,$host,$port = '3306')
36   $GLOBALS['dbh'] = $database->_connectionID;
37   return $GLOBALS['dbh'];
40 function sqlStatement($statement)
42   //----------run a mysql query, return the handle
43   $query = mysql_query($statement, $GLOBALS['dbh']) or 
44     HelpfulDie("query failed: $statement", mysql_error($GLOBALS['dbh']));
45   return $query;
48 function idSqlStatement($statement)
50   return sqlInsert($statement);
53 function sqlClose()
55   //----------Close our mysql connection
56   $closed = mysql_close($GLOBALS['dbh']) or
57     HelpfulDie("could not disconnect from mysql server link", mysql_error($GLOBALS['dbh']));
58   return $closed;
61 function sqlInsert($statement)
63   //----------run a mysql insert, return the last id generated
64   mysql_query($statement, $GLOBALS['dbh']) or 
65     HelpfulDie("insert failed: $statement", mysql_error($GLOBALS['dbh']));
66   return mysql_insert_id($GLOBALS['dbh']);
69 function sqlInsertClean($statement)
71   return sqlInsert($statement);
74 function sqlNumRows($resource)
76   if (empty($resource)) return 0;
77   return mysql_num_rows($resource);
80 function sqlFetchArray($resource)
82   if ($resource == FALSE)
83     return false;
84   return mysql_fetch_array($resource, MYSQL_ASSOC);
87 function sqlQuery ($statement)
89   //echo "[$statement]<br>";
90   //echo "link is: " . $GLOBALS['dbh'];
91   $query = mysql_query($statement, $GLOBALS['dbh']) or 
92     HelpfulDie("query failed: $statement", mysql_error($GLOBALS['dbh']));
93   $rez = @mysql_fetch_array($query, MYSQL_ASSOC);
94   if ($rez == FALSE)
95     return FALSE;
96   return $rez;
99 function sqlListFields($table) {
100   $sql = "SHOW COLUMNS FROM ". mysql_real_escape_string($table);
101   $res = sqlQ($sql);
102   $field_list = array();
103   while($row = mysql_fetch_array($res)) {
104     $field_list[] = $row['Field'];
105   }
106   return $field_list;
109 function sqlLastID() {
110   return mysql_insert_id($GLOBALS['dbh']);
113 function sqlQ ($statement)
115   //echo "[$statement]<br>";
116   //echo "link is: " . $GLOBALS['dbh'];
117   $query = mysql_query($statement, $GLOBALS['dbh']) or
118     HelpfulDie("query failed: $statement", mysql_error($GLOBALS['dbh']));
119   return $query;
122 function get_db() {
123   return $GLOBALS['adodb']['db'];
126 function generate_id () {
127   $database = $GLOBALS['adodb']['db'];
128   return $database->GenID("sequences");
131 //fmg: Much more helpful that way...
132 function HelpfulDie ($statement, $sqlerr='')
134   echo "<p><p><font color='red'>ERROR:</font> $statement<p>";
135   if ($sqlerr) {
136     echo "Error: <font color='red'>$sqlerr</font><p>";
137   }//if error
138   exit;