Después de leer la documentación de mysql.
Necesito que cada vez que ingreso una fila en la BD se cree automaticamente una marca de tiempo conforme al momento en que fue ingresada
tengo la siguiente base de datos:
USE xxxxxxx;
CREATE TABLE mensajes (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
mensaje VARCHAR(501) collate utf8_spanish_ci NULL,
joinDate DATE NOT NULL,
joinTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
el siguiente php que ingresa registros en la BD:
$newmensaje = new Mensajes( array(
"mensaje" =>$recTextmensaje,
"joinDate" => date( "Y-m-d" ),
"joinTime" =>date (" Y-m-d H: i: s ")
));
if($newmensaje->insertMensaje())
y el siguiente PDO:
public function insertMensaje() {
$conn = parent::connect();
$sql = "INSERT INTO " . $this->TBL_MENSAJES . " (
mensaje,
joinDate,
joinTime
) VALUES (
:mensaje,
:joinDate,
:joinTime
)";
try {
$st = $conn->prepare( $sql );
$st->bindValue( ":mensaje", $this->data["mensaje"], PDO::PARAM_STR );
$st->bindValue( ":joinDate", $this->data["joinDate"], PDO::PARAM_STR );
$st->bindValue( ":joinTime", $this->data["joinTime"], PDO::PARAM_STR );
$st->execute();
parent::disconnect( $conn );return true;
} catch ( PDOException $e ) {
parent::disconnect( $conn );
die( "Query failed: " . $e->getMessage() );
}
}
Pues bien, el registro joinTime de la Bd siempre permanece a cero de ésta manera:0000-00-00 00:00:00
es decir no ingresa nada. Tan solo ingresa los campos: mensaje y joinDate.
Sabría alguien explicarme que es lo que estoy haciendo mal?
Le estaría muy agradecido a quién me pudiera hechar un cable.
Gracias de antemano
Manuel