Bueno, ya que nadie pudo responder hare yo mismo el aporte.
Efectivamente los valores que en el objeto vienen null pasan a la base de datos solo como un String vacío, no quedando realmente NULL en ella.
La solución que me hice para evitar este desagradable problema es la siguiente clase con un método estático utilitario:
Código PHP:
<?php
class Util {
public static function convert2Sql($campo) {
if(null == $campo) {
$campo = 'NULL';
} else {
$campo = '\''.$campo.'\'';
}
return $campo;
}
}
?>
De esta forma en mi DAO puedo tener el metodo save de la siguiente forma:
Código PHP:
public function save(Ecg $ecg) {
if(null == $ecg) {
throw new Exception('Objecto Ecg viene nulo', 2001);
}
$this->query = 'INSERT INTO ECG (
PCNTE_CDG,
ECG_PICTURE_RUTE,
ECG_OBS,
ECG_DIAGNOSIS,
ECG_AUD_FEC_CREAT,
ECG_AUD_CREAT_BY
) VALUES ('
. Util::convert2Sql($ecg->getPcnteCdg()) . ','
. Util::convert2Sql($ecg->getEcgPictureRute()) . ','
. Util::convert2Sql($ecg->getEcgObs()) . ','
. Util::convert2Sql($ecg->getEcgDiagnosis()) . ','
. 'NOW(),'
. Util::convert2Sql($ecg->getEcgAudCreatBy())
. ')';
$this->con->setQuery($this->query);
return $this->con->executeUpdate();
}
Ahí esta por si a alguien le sirve o tiene el mismo problema, así nos evitamos los eternos if validando si el campo viene nulo y eso.
Cualquier duda me pueden consultar.
Saludos