NULL

edited mayo 2008 in Principiantes
Hola a todos, como puedo hacer para por medio del metodo update colocar el valor de un campo en NULO.

Comentarios

  • $model->update("campo1: ");
    
    $model->save();
    

    Claro si tienes una restriccion de NOT NULL en la BD, obviamente no te funcionara...
  • edited 10:47
    No funciona, coloque en el controlador lo siguiente:

    $this->Empleados->find($_REQUEST["empl_id"]);
    $this->Empleados->update("perfiles_id: ");
    $this->Empleados->save();

    El campo perfiles_id a pesar de ser una llave foranea a la tabla perfiles, no tiene restriccion de NOT NULL, mas sin embargo no actualiza a nulo (deja el mismo valor que traia antes de la actualizacion), pero si ejecuto el update directamente en mysql funciona perfecto.
  • Prueba de esta forma:
    $empleado = $this->Empleados->find($_REQUEST["empl_id"]);
    $empleado->update("perfiles_id: ");
    $empleado->save();
    

    Avisa si te funciono...
  • edited 10:47
    Negativo. no funciona.
  • <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: --> muestrame la estructura de esa tabla que deseas actualizar...
  • edited 10:47
    claro:

    CREATE TABLE `empleados` (
    `id` int(11) NOT NULL auto_increment,
    `tpsdocsids_id` int(11) NOT NULL,
    `empl_docid` varchar(50) NOT NULL,
    `empl_docid_provincia` varchar(50) NOT NULL,
    `empl_sexo` varchar(1) NOT NULL,
    `empl_nombres` varchar(50) NOT NULL,
    `empl_apellidos` varchar(50) NOT NULL,
    `empl_born_date` date NOT NULL,
    `empl_born_provincia` varchar(50) NOT NULL,
    `empl_provincia` varchar(50) NOT NULL,
    `empl_direccion` varchar(100) NOT NULL,
    `empl_telefonos` varchar(50) default NULL,
    `empl_movil` varchar(50) default NULL,
    `empl_ext` varchar(50) default NULL,
    `empl_email` varchar(100) default NULL,
    `empl_foto` varchar(100) default NULL,
    `empl_firma` varchar(100) default NULL,
    `perfiles_id` int(11) default NULL,
    `empl_login` varchar(30) default NULL,
    `empl_clave` varchar(100) default NULL,
    `empl_bloqueado` varchar(1) default 'N',
    `empl_act` varchar(1) NOT NULL default 'S',
    `empl_sys` varchar(3) NOT NULL default 'XXX',
    `empl_movdb` varchar(100) NOT NULL default 'USUARIO|MOVDB|FECHA',
    PRIMARY KEY (`id`),
    UNIQUE KEY `empl_docid` (`empl_docid`),
    UNIQUE KEY `empl_login` (`empl_login`),
    KEY `empl_tpdocid` (`tpsdocsids_id`),
    KEY `empl_docid_provincia` (`empl_docid_provincia`),
    KEY `empl_provincia` (`empl_provincia`),
    KEY `empl_perfil` (`perfiles_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
  • edited 10:47
    Haciendo $empleado->update("perfiles_id: "); no va a funcionar, debido a que get_params espera algun valor, aunque sea un espacio en blanco, en caso contrario no lo reconoce.

    Si embargo prueba hacer
    $empleado-&gt;perfiles_id = null;
    $empleado-&gt;update();
    

    Y cuenta a ver como te va
Sign In or Register to comment.