Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2009, 10:04
Avatar de Enishy
Enishy
 
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 17 años, 2 meses
Puntos: 1
Problema con mi Insert

Hola foreros espero me puedan ayudar porfa...

Estoy usando postgreSQl 8.2 en Win XP este es mi codigo en el que hago el insert

El error que me arroja el postgres es traduciendolo: que no puedo dejar los FK vacios, que se esperaba un valor entero y ocurre en esta linea

Código PHP:
$sql_cer="INSERT INTO ficha_catalogacion
VALUES ('$maxi_fcat', '$vid','$img2', '$img3','$cod_fix','','','','','','$data_usu[codigo_usuario]', '$registro', '$regnacional', '$fechacatalogacion','$vitrina','$nivel')"

si se fijan estas comillas '' estan vacias pues en este caso solo ingresare una nueva ficha_catalogacion para ceramio y es x eso que las demas FK estan vacias ... y alli es donde ocurre el problema pues postgres me dice que deben esta llenas , eh intentado ponerle cero asi '0' pero como son tipo de dato INTEGER no resulta...este mismo codigo lo venia usando con MySQL y me insertaba sin problemas asi como esta pero al pasarlo al postgres este es mas estricto y no me permite eso de dejar vacios las FK

esta es la estructura de mi tabla Ficha_Catalogacion

Código:
cod_catalogacion (PK) - integer
cod_video (FK) - integer
cod_imagen2 (FK) - integer
cod_imagen3 (FK) - integer
cod_ceramio (FK) - integer
cod_botanico (FK) - integer
cod_adobe (FK) - integer
cod_entierro (FK) - integer
cod_estructura (FK) - integer
cod_oseo (FK) - integer
cod_usuario (FK) - integer
registro 
regnacional
fecha
vitrina
nivel
Este es mi codigo con el que hago el insert

Código PHP:
include ("Seguridad.php");
include (
"Conexion.php");
$registro=$_POST["regcat_ceramio"];

//Selecciona Codigo Ficha Campo Oseo
$cod_fix=$_SESSION['codigo_ceramio'];

//Selecciona Archivos
$res2=pg_exec("select max(codigo_imagen2) from imagen2");
$row2=pg_fetch_array($res2);
$img2=$row2[0];
                                            
$res3=pg_exec("select max(codigo_imagen3) from imagen3");
$row3=pg_fetch_array($res3);
$img3=$row3[0];

//selecicona Archivo
$res=pg_exec("select max(codigo_video) from video");
$row=pg_fetch_array($res);
$vid=$row[0];

//Ficha Registro Oseo MaxCodigo
$query_fcat=pg_exec("SELECT Max(codigo_catalogacion) AS fcat FROM ficha_catalogacion") or die ("Error SQL Max Ficha Catalogacion Oseo");
$data_fcat=pg_fetch_array($query_fcat);
$max_fcat=$data_fcat[fcat];
$maxi_fcat=$max_fcat+1;

//Selecciona Usuario
$user_name=$_SESSION['register_username'];
echo 
$user_name;
$sql_usu="Select codigo_usuario From usuario Where nombre_usuario='$user_name'";
$query_usu=pg_exec($DB,$sql_usu) or die ("Error SQL Usuario");
$data_usu=pg_fetch_array($query_usu);

//Inserta fila Ficha Registro Oseo
$sql_cer="INSERT INTO ficha_catalogacion
VALUES ('$maxi_fcat', '$vid','$img2', '$img3','$cod_fix','','','','','','$data_usu[codigo_usuario]', '$registro', '$regnacional', '$fechacatalogacion','$vitrina','$nivel')"
;
$row_cer pg_exec($DB,$sql_cer) or die ("Error SQL Insert Ficha Registro Ceramio");
$_SESSION['regcat_ceramio']=$registro;

//captura fecha y hora
setlocale(LC_TIME,"es_ES");
$fecha=date("Y-m-d");
$hora=date("H:i",time()-3600);

//Bitacora MaxCodigo 
$query_bit=pg_exec("SELECT Max(codigo_detaoperacion) AS bit FROM detalle_operacion") or die ("Error SQL Bitacora");
$data_bit=pg_fetch_array($query_bit);
$max_bit=$data_bit[bit];
$maxi_bit=$max_bit+1;

//REGISTRA INSERT EN BITACORA
$sql_det="INSERT INTO detalle_operacion
VALUES ('$maxi_bit','$data_usu[codigo_usuario]','3','$hora','$fecha','$registro')"
;
$query_det=pg_exec($DB,$sql_det)or die ("Error SQL Insert Detalle Operacion");

include(
"close_conexion.php");
include(
"InfoFR_Ceramio.php");