En php utilizando MVC estoy haciendo algo así:
Clasee de la BD (que ejecuta un procedimiento, recibiendo como referencia, el nombre del procedimiento y un array con los datos):
Código PHP:
public function procedure($procedure=false,$rows=false){
$response=array();
if($procedure==false){
$response="Query is Empty!";
}else{
$sql = "SELECT ".$procedure."(";
for ($i=1; $i<=count($rows); $i++){
$sql .= "$".$i.",";
}
$sql = substr($sql,0,-1);
$sql .= ")";
//echo $sql;
$res = pg_prepare($this->linkid, "my_query", $sql);
$res = @pg_execute($this->linkid, "my_query", $rows);
if($res){
while($consF=pg_fetch_assoc($res))
array_push($response,$consF[$procedure]);
}else{
array_push($response,"ERROR");
array_push($response,$this->validateOperation());
}
return $response;
}
}
private function validateOperation (){
return pg_last_error($this->linkid)=='' ? true :pg_last_error($this->linkid);
}
Código PHP:
public function new_mov($array){
return $mov = $this->db->procedure("insert_art_mov",$array);
}
Código PHP:
$mov_dat = $mov->new_mov($values)
if($mov_dat[0]=="ERROR"){
echo $mov_dat[1];
}else{
echo "Row Inserted";
}
otra dudita que tengo, es posible crear una funcion (sea en php o postgresql) donde por ejemplo, cuando en la tabla a se intenta violar el pk me de el error #1 (y en otra tabla yo tendria algo como error #1: se intento insertar un dato que duplica la llave de la tabla a...