Encontramos un error en la consulta:
function tiene_visa_vencida($persona, $fecha)
{
$persona = toba::db()->quote($persona);
$fecha = toba::db()->quote($fecha);
$sql = "SELECT count(1) AS cant
[b]FROM mdp_personas,[/b]
JOIN mdp_personas_extranjeros ON mdp_personas.persona = mdp_personas_extranjeros.persona
WHERE mdp_personas.persona = $persona
AND mdp_personas.nacionalidad = ".persona::nac_extranjero."
AND mdp_personas_extranjeros.tipo_visa = ".persona::visa_temporal."
AND mdp_personas_extranjeros.vencimiento_visa <= $fecha
";
$res = guarani_db::consultar_fila($sql);
return ($res['cant'] > 0);
}
Hay una “,” despues del FROM antes del siguiente JOIN.