sqlHost = $value;
}
public function getSqlHost()
{
return $this->sqlHost;
}
public function setSqlDatabase($value)
{
$this->sqlDatabase = $value;
}
public function getSqlDatabase()
{
return $this->sqlDatabase;
}
public function setSqlUser($value)
{
$this->sqlUser = $value;
}
public function getSqlUser()
{
return $this->sqlUser;
}
public function setSqlPassword($value)
{
$this->sqlPassword = $value;
}
public function getSqlPassword()
{
return $this->sqlPassword;
}
public function setQuery($value)
{
$this->query = $value;
}
public function getQuery()
{
return $this->query;
}
public function setProjectStatus($value)
{
$this->projectStatus = $value;
}
public function getProjectStatus()
{
return $this->projectStatus;
}
/**
* Nuevo método para establecer conexión MySQLi externa
*/
public function setMysqliConnection($mysqli_connection)
{
$this->mysqli_conn = $mysqli_connection;
}
/**
* Obtiene conexión MySQLi actual
*/
public function getMysqliConnection()
{
return $this->mysqli_conn;
}
function __construct()
{
$this->sqlHost = SQL_HOST;
$this->sqlDatabase = SQL_DATABASE;
$this->sqlUser = SQL_USER;
$this->sqlPassword = SQL_PASSWORD;
}
public function DatabaseConnect()
{
$this->conn_id = mysql_connect($this->sqlHost, $this->sqlUser, $this->sqlPassword, 1);
mysql_select_db($this->sqlDatabase, $this->conn_id) or die("
".mysql_error()."
");
}
public function ExecuteQuery()
{
// Usar conexión MySQLi si está disponible
if($this->mysqli_conn)
{
if($this->projectStatus == "test")
{
echo "
Executing Query (MySQLi):".$this->query."
";
}
$this->sqlResult = $this->mysqli_conn->query($this->query);
if($this->sqlResult === false)
{
throw new Exception("Error en consulta (MySQLi): " . $this->mysqli_conn->error . "
Query: " . $this->query);
}
}
else
{
// Fallback a método original con mysql_*
if(!$this->conn_id)
$this->DatabaseConnect();
//TODO we might want to add some security in queries here, but that can be done later, this is place
if($this->projectStatus == "test")
{
echo "
Executing Query:".$this->query."
";
}
$this->sqlResult = mysql_query($this->query, $this->conn_id) or die(mysql_error()."
");
}
}
function GetResult()
{
$retArray = array();
$this->ExecuteQuery();
if($this->mysqli_conn)
{
while($rs = $this->sqlResult->fetch_assoc())
{
$retArray[] = $rs;
}
}
else
{
while($rs = mysql_fetch_assoc($this->sqlResult))
{
$retArray[] = $rs;
}
}
$this->CleanQuery();
return $retArray;
}
function GetRow()
{
$this->ExecuteQuery();
if($this->mysqli_conn)
{
$rs = $this->sqlResult->fetch_assoc();
}
else
{
$rs = mysql_fetch_assoc($this->sqlResult);
}
$this->CleanQuery();
return $rs;
}
function GetSingle()
{
$this->ExecuteQuery();
if($this->mysqli_conn)
{
$rs = $this->sqlResult->fetch_array(MYSQLI_NUM);
}
else
{
$rs = mysql_fetch_array($this->sqlResult, MYSQL_NUM);
}
$this->CleanQuery();
return $rs[0];
}
function GetNumRows()
{
$this->ExecuteQuery();
if($this->mysqli_conn)
{
$rs = $this->sqlResult->num_rows;
}
else
{
$rs = mysql_num_rows($this->sqlResult);
}
$this->CleanQuery();
return $rs;
}
function InsertData()
{
$this->ExecuteQuery();
if($this->mysqli_conn)
{
$id = $this->mysqli_conn->insert_id;
}
else
{
$id = mysql_insert_id($this->conn_id);
}
$this->CleanQuery();
return $id;
}
function UpdateData()
{
$this->ExecuteQuery();
if($this->mysqli_conn)
{
$rs = $this->mysqli_conn->affected_rows;
}
else
{
$rs = mysql_affected_rows($this->conn_id);
}
$this->CleanQuery();
return $rs;
}
function CleanQuery()
{
if($this->mysqli_conn)
{
if($this->sqlResult)
$this->sqlResult->free();
}
else
{
mysql_free_result($this->sqlResult);
}
$this->sqlResult = NULL;
}
function GetEnumValues($table,$field)
{
$this->query = "SHOW COLUMNS FROM $table LIKE '$field'";
if($this->mysqli_conn)
{
$result = $this->mysqli_conn->query($this->query);
$row = $result->fetch_assoc();
}
else
{
$result = mysql_query($this->query, $this->conn_id);
$row = mysql_fetch_assoc($result);
}
preg_match_all('/\'(.*?)\'/', $row['Type'], $enum_array);
$enum_fields = $enum_array[1];
return( $enum_fields );
}
}
?>