All,
I'm using the Enterprise Modules Framework (Tomorrow's Framework) and the recent
changes/upgrades to PHP7 require the use of mysqli_ commands over the old mysql_
commands. Here is the code from the connection section of the dataio module:
Code:
function dbConnect($eng,$hst,$udb,$usr,$pwd) {
/*********************************************************************/
/* Function: dbConnect() */
/* Call: dbCommect ( eng, host, usedb, user, pwd ) */
/* Purpose: Connects the database & reports errors. Only one */
/* consecutive connection allowed. */
/*********************************************************************/
//self::db_Set_Vars ($eng,$hst,$udb,$usr,$pwd,'','','');
if ( $de_bug == 5 ) {
echo "DE=> $eng <br>\n";
echo "DH=> $hst <br>\n";
echo "DU=> $udb <br>\n";
echo "DL=> $usr <br>\n";
echo "DP=> $pwd <br>\n";
} // end if $de_bug
/*if ( isset ( $_SESSION['DB_CON']) && $_SESSION['DB_CON']<>NULL ) {
$this->db_con = $_SESSION['DB_CON'];
} else {
$this->db_con = DB_CON;
} // end if/else $_SESSION['db_usr'] */
if (!$con) {
switch ($eng) {
case 'ingres': // Process using the Ingres Engine
// TBD // Ingres user your contribution please
break;
case 'mssql': // Process using the MS-SQL Engine
// TBD // MS-SQL user your contribution please
break;
case 'mysql': // Process MySQL Engine
$ver = intval ( phpversion () );
if ( $ver < 7 ) {
$conn = mysql_connect($hst,$usr,$pwd) or die(mysql_error());
$seldb = mysql_select_db($udb,$conn) or die(mysql_error());
$this->db_sel = false;
if ($seldb) { $this->db_sel = true; }
} else {
$conn = new mysqli($hst,$usr,$pwd,$udb) or die(mysql_error());
}
break;
case 'pgsql': // Process PostGres Engine
$con_str = "host=$db_hst port=$db_prt user=$db_uid ".
"password=$db_pwd dbname=$db_nam";
$this->db_con = pg_connect($con_str)
or die("Error: Failed to connect with CONN_STRING");
if ($this->db_con) {
$this->db_sel = true;
} else {
$this->db_sel = false;
} // end if $this->db_con
break;
case 'oracle': // Process using the Oracle Engine
// TBD // Oracle user your contribution please
break;
case 'sybase': // Process using the SyBase Engine
// TBD // SyBase user your contribution please
break;
} // end switch
} // end if !$this->con
if ($this->db_sel === true) {
return array($this->db_con, $this->db_use);
} // end if $this->con
} // end function dbConnect
You can see why I use EM as you can trancend and/0r interpose on any DB. I once
had all the code for MS-SQL and Oracle, when on a client project where they were
using both as their DBs and they couldn't understand why I could merge databases
so easy, but you can when all the code is the same and you just choose the DB
engine.
Anyway the problem is all previous code and all the other code is looking for the
$this->db_sel var to be set "TRUE" when actually connected and the DB selected.
All the HOWTOs and code samples do not show a way to get this, without writing a
complex query.
Version is queried at the lines:
Code:
$ver = intval ( phpversion () );
if ( $ver < 7 ) {
I need to know if there is a simple command on this, or do I use the same logic
that is shown for the PostGres connection processing.
Just need to know to keep this optimized as possible.
Cheers!
OMR/TBNK