false, //No se puede poner a true porque si no al devolver los resultados de las consultas los devuelve todos como string PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, )); } catch (PDOException $e){ echo "Error al conectar".($debugMode ? " (".$e->getMessage().")" : ""); } return $link; } function bbddQueryFetch($query, $params = null) { return bbddQuery($query, $params, true); } function bbddQuery($query, $params = null, $fetchItems = false) { global $link; try { $res = true; if(is_null($params)) { $stmt = $link->query($query); } else { $stmt = $link->prepare($query); $res = $stmt->execute($params); } return ($fetchItems ? $stmt->fetchAll(\PDO::FETCH_ASSOC) : ($res ? $stmt : false)); } catch(\PDOException $e) { echo "

ERROR AL EJECUTAR QUERY:

".$query."

params:".json_encode($params)."

DebugSQL:".bbddComposeDebugSQL($query, $params)."

".$e->getMessage()."
"; print $e; } return false; } function bbddComposeDebugSQL($query, $params) { $res = $query; $tmp = array(); preg_match_all("/(\\:\w+)/", $query, $tmp); foreach($tmp[0] AS $k) { if($k != "") { if(is_numeric($params[$k]) || is_null($params[$k])) { $res = str_replace($k, $params[$k], $res); } else { $res = str_replace($k, '"'.$params[$k].'"', $res); } } } return $res; } function bbddLastInsertId(){ global $link; return intval($link->lastInsertId()); } function bbddSingleScalarResult($query, $params = null){ global $link; if(is_null($params)) { $stmt = $link->query($query); } else { $stmt = $link->prepare($query); $stmt->execute($params); } $res = $stmt->fetchColumn(); return (is_numeric($res) ? $res : 0); } function beginTransaction(){ global $link; if(!$link->inTransaction()) { $link->beginTransaction(); } } function commitTransaction(){ global $link; if($link->inTransaction()) { $link->commit(); } } function rollbackTransaction(){ global $link; if($link->inTransaction()) { $link->rollBack(); } } function bbddCloseConnection(){ global $link; $link = null; } $maxlifetimeSecs, 'path' => '/', 'domain' => $currentParams["domain"], 'secure' => $secure, 'httponly' => $httponly, ]; if($samesite != "") { $sessionParams['samesite'] = $samesite; } session_set_cookie_params($sessionParams); } session_start(); } /** Si lleva mas de $maxTiempoInactividad segundos de inactividad */ if($maxTiempoInactividadSecs > 0 && isset($_SESSION['ultima_actividad']) && (time() - $_SESSION['ultima_actividad'] > $maxTiempoInactividadSecs)) { session_regenerate_id(true); session_unset(); session_destroy(); } $_SESSION['ultima_actividad'] = time(); return sessionId(); } function finalizaSession() { if(sessionAvailable()) { session_regenerate_id(true); session_destroy(); } } function sessionId() { return session_id(); } function sessionStarted() { //return (session_status() != PHP_SESSION_NONE); return (sessionId() != ''); } function existeVarSession($nombreVar) { return (sessionAvailable() && isset($_SESSION[$nombreVar])); } function getVarSession($nombreVar, $valorDefecto = null) { if(sessionAvailable() && existeVarSession($nombreVar)) { return $_SESSION[$nombreVar]; } else { return $valorDefecto; } } function setVarSession($nombreVar, $nuevoValor) { if(sessionAvailable()) { $_SESSION[$nombreVar] = $nuevoValor; } } function getObjSession($nombreVar, $valorDefecto = null) { if(sessionAvailable() && existeVarSession($nombreVar)) { return unserialize($_SESSION[$nombreVar]); } else { return $valorDefecto; } } function setObjSession($nombreVar, $nuevoValor) { if(sessionAvailable()) { $_SESSION[$nombreVar] = serialize($nuevoValor); } } function unsetVarSession($nombreVar) { if(sessionAvailable()) { unset($_SESSION[$nombreVar]); } } function sessionAvailable() { global $argc; return !isset($argc); }