Yo lo pondría así:
Código PHP:
$arrayDatos = array("autor" => $autor,
"titulo" => $titulo,
"noticia" => $noticia,
"publi_date" => time());
$campos = array_keys( $arrayDatos );
$valores = array_values( $arrayDatos );
$camposString = implode( ",", $campos );
$valoresString = implode( ", ", $valores );
$query = mysql_query("INSERT INTO news ($camposString) VALUES (valoresString)") or die(mysql_error());
Aunque ese error, que es de SQL, te dice que hay una columna que no existe en la BD.