Foros del Web » Programando para Internet » PHP » Configuración PHP »

Duda sobre compatibilidad entre php 5.3 y postgres 8.4

Estas en el tema de Duda sobre compatibilidad entre php 5.3 y postgres 8.4 en el foro de Configuración PHP en Foros del Web. Buenas queria saber si php 5.3 y postgres 8.4 para debian 6 squeeze son compatibles es que estoy haciendo una migracion y se me genera ...
  #1 (permalink)  
Antiguo 23/05/2012, 12:48
 
Fecha de Ingreso: mayo-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 0
Duda sobre compatibilidad entre php 5.3 y postgres 8.4

Buenas queria saber si php 5.3 y postgres 8.4 para debian 6 squeeze son compatibles es que estoy haciendo una migracion y se me genera un error el postgres y queria saber si estoy seguir perdiendo el tiempo. :D
  #2 (permalink)  
Antiguo 23/05/2012, 13:37
Avatar de Sotelio  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Chile
Mensajes: 68
Antigüedad: 12 años, 11 meses
Puntos: 21
Respuesta: Duda sobre compatibilidad entre php 5.3 y postgres 8.4

¿Cuál es el error?

Saludos!
  #3 (permalink)  
Antiguo 23/05/2012, 14:30
 
Fecha de Ingreso: mayo-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Duda sobre compatibilidad entre php 5.3 y postgres 8.4

Son dos que son los que siempre salen

1) pg_query(): Query failed: ERROR: el operador no existe: d_historia = integer LINE 3: where nro_historia =-1 ^ HINT: Ning�n operador coincide con el nombre y el tipo de los argumentos. Puede desear agregar conversiones expl�citas de tipos.


pg_query(): Query failed: ERROR: OFFSET no debe ser negativo
  #4 (permalink)  
Antiguo 24/05/2012, 12:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Duda sobre compatibilidad entre php 5.3 y postgres 8.4

Por cierto este es mi archivo postgres.php donde se me generan estos errores


<?php
/**
* Provee metodos necesarios para interactuar con PostgreSQL
*
*<br> Parametros del arreglo $parametros :
*<ul><li> $parametros["host"]
*<li> $parametros["user"]
*<br> $parametros["password"]
*<br> $parametros["database"]
*<br> $parametros["host"]
*<br> $parametros["port"]
*</ul>
*
* @author Sanny Alexander Sanchez
* @version 1.0
* @package xfm
* @dat 20060303
*/
class postgresql extends AbstractDBConnect {

private $dns;
private $user;
private $password;
private $cursor_type;
private $conn;
private $host;
private $port;
private $database;
private $encoding = '';

/**
* Constructor de la clase postgresql,
* invoca el constructor del padre, inicializa las variables, crea la conexión a PostgreSQL
*/


function __construct($parametros){
parent::__construct();

if ( !isset($parametros["user"]) ) throw new Exception("Parametro: user",1206);
if ( !isset($parametros["password"]) ) throw new Exception("Parametro: password",1206);


$this->host = $parametros["host"];
$this->port = $parametros["port"];
$this->database = $parametros["database"];
$this->password = $parametros["password"];
$this->user = $parametros["user"];
//Encoding??
if(array_key_exists('encoding',$parametros)){
$this->encoding = $parametros["encoding"];
} else {
$this->encoding = 'LATIN1';
}

if( ! $this->conn = pg_pconnect("host=".$this->host." port=".$this->port." dbname=".$this->database." user=".$this->user." password=".$this->password) )
throw new Exception("pg_pconnect(host=".$this->host." port=".$this->port." dbname=".$this->database." user=".$this->user." password=".$this->password.") no se puede realizar",100);
/*
if( ! $this->conn = pg_pconnect("host=".$this->host." port=".$this->port." dbname=".$this->database." user=".$this->user." password=".$this->password) )
throw new Exception("pg_pconnect(host=".$this->host." port=".$this->port." dbname=".$this->database." user=".$this->user." password=".$this->password.") no se puede realizar"

*/

if(!empty($this->encoding))
pg_set_client_encoding ($this->conn, $this->encoding);

/* incluir aqui iniciar session */
require_once('../../pg_connected.php');
}



/**
* Ejecuta código SQL, retorna un objeto DataSet con los resultados
*/
public function get($sql)
{
//echo "$sql<br>";
if (is_null($sql) || $sql =="") throw new Exception("",1203);


$result = pg_query($this->conn, $sql);

if ( is_null($result) ) throw new Exception("",1204);
$num_campos = pg_num_fields( $result );
/* comienza en 0 */
for($i = 0 ; $i < $num_campos ; $i++)
$this->dataset->append(pg_field_name($result,$i),pg_field_type($r esult,$i));
$r = 0;
if ( $num_rows = pg_num_rows( $result ) )
while ($row = pg_fetch_array( $result) ){
$r++;
$this->dataset->addNew();
$j = 0;
foreach($row as $key=>$value) {
if (!is_int($key)) {
$j++;
if( !$this->dataset->setValue_ind($j, $value))
throw new Exception("",1202);
}
}
}
$this->dataset->_de = $num_rows;
return $this->dataset;
}




public function getPage($sql,$sql2,$pag,$paso){
if (is_null($sql) || $sql =="") throw new Exception("",1203);
$inicio = ( ($pag - 1 ) * $paso ) + 0 ;
$fin = $inicio + $paso - 1;

/* arreglar esto */
$result = pg_query($this->conn, $sql2);
$row = pg_fetch_array( $result);
$num_rows_T = $row['count'];
// $num_rows_T = pg_num_rows( $result );


$sql .= ' limit '.$paso.' offset '.$inicio;

$result = pg_query($this->conn, $sql);
if ( is_null($result) ) throw new Exception($sql."<br>",1204);
$num_campos = pg_num_fields( $result );
/* comienza en 0 */
for($i = 0 ; $i < $num_campos ; $i++)
$this->dataset->append(pg_field_name($result,$i),pg_field_type($r esult,$i));
//$r = 0;
$k = 0;

if ( $num_rows = pg_num_rows( $result ) ){
$inicio = 0 ;
$fin = $num_rows;
while ($row = pg_fetch_array( $result) ){
$k++;
if ( $k < $inicio ) continue;
if ($k > $fin ) break;
$j = 0;
$this->dataset->addNew($k);
foreach($row as $key=>$value) {
if (!is_int($key)) {
$j++;
if( !$this->dataset->setValue_ind($j, $value))
throw new Exception("",1202);
}
}
}
}

$this->dataset->_de = $num_rows_T;
$this->dataset->_currentPage = $pag;
// $this->_pageSize = $paso;
$this->dataset->setPageSize( $paso );
return $this->dataset;
}



/**
* exec Ejecuta código SQL, retorna 1 ó 0
*/
public function exec($sql) {
if (is_null($sql) || $sql =="") throw new Exception("postgresql->(sql)",1203);
if( pg_query($this->conn, $sql) ) return(1);
else throw new Exception("<i>".$sql."</i><br> No se puede Ejecutar",1204);
}


/**
* Implementa una transacción, devuelve un arreglo contenedor de la cantidad de registros afectado por cada instrucción SQL en caso de ejecución completa y 0 en caso de error.
*/

public function execBacth($sqlVector){

if ( !is_array($sqlVector) || count($sqlVector) <= 0 ) throw new Exception("postgresql->execBacth(".$sqlVector."), no se puede ejecutar, debido a que el arreglo de cadenas SQL no existe o no tiene elementos",1208);
$arr = array();
pg_query($this->conn,"begin");
foreach($sqlVector as $var)
if ( ! $res = pg_query($this->conn,$var) ){
pg_query($this->conn,"rollback");
throw new Exception("",1204);
break;
} else {
$arr[] = pg_affected_rows($res);
}
pg_query($this->conn,"commit");
return($arr);
}






/**
* Increnta y retorna el contador de secuencia
*/
public function getSequence($str){
$cad = " select nextval( cast( (select secuencia_nom from xfm_gen_tablas where tabla='".$str."') as text) ) as num ;";
$cad .= " select currval( cast( (select secuencia_nom from xfm_gen_tablas where tabla='".$str."') as text) ) as num ;";

if( $result = pg_query($this->conn,$cad) ){
$row = pg_fetch_array( $result );
if( $row ) return $row['num'] ;
}

throw new Exception("postgresql->getSequence(): No se pudo ejecutar <br> No hay registro definido para la secuencia: <b>" . $str . "</b> en la tabla ".$seq,1204);

}

/*
* Aplica el escape de caracteres a una cadena a ser insertada
*/
public function escape_string($sql){
return pg_escape_string($this->conn,$sql);
}

/*
* Crea una sentencia preparada
*/
public function prepare($name,$sql){
if(pg_prepare($this->conn,$name,$sql) === false)
return false;
return true;
}

/*
* Ejecuta una sentencia preparada
*/
public function execute($name,$param){
if( pg_execute($this->conn,$l_name,$param) === false)
return false;
return true;
}



/**
* Destructor de la clase postgresql, elimina las variables, cierra la conexión con PostgreSQL
*/
function __destruct(){
unset($this->dns);
unset($this->user);
unset($this->password);
unset($this->cursor_type);
if ( isset($this->conn) ) pg_close($this->conn);
unset($this->conn);
unset($this->dataset);
}
}




?>

Etiquetas: compatibilidad, php, postgres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:23.