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'");
14 error_log("PHP custom error: from openemr library/sql.inc - Unable to set up UTF8 encoding with mysql database: ".$database->ErrorMsg(), 0);
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>";
28 echo "Check that you can ping the server '$host'.<p>";
30 HelpfulDie("Could not connect to server!", mysql_error($GLOBALS['dbh']));
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']));
48 function idSqlStatement($statement)
50 return sqlInsert($statement);
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']));
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)
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);
99 function sqlListFields($table) {
100 $sql = "SHOW COLUMNS FROM ". mysql_real_escape_string($table);
102 $field_list = array();
103 while($row = mysql_fetch_array($res)) {
104 $field_list[] = $row['Field'];
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']));
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>";
136 echo "Error: <font color='red'>$sqlerr</font><p>";