ERROR AL EJECUTAR: $query
".mysql_error()."
"; } return false; } return $res; } function realScapeStringBBDD($campo, $esDeForm = false){ if(esMotorPostgreSqlBBDD()) { return pg_escape_string(($esDeForm ? $_POST[$campo] : $campo)); } else { global $link; if(get_magic_quotes_gpc()) { return mysqli_real_escape_string($link, mysqli_escape_string($link, $esDeForm ? $_POST[$campo] : $campo)); }else{ return mysqli_real_escape_string($link, ($esDeForm ? $_POST[$campo] : $campo)); } } } function fetchArrayBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_fetch_array($q); } else { return mysqli_fetch_array($q); } } function freeResultBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_free_result($q); } else { return mysqli_free_result($q); } } function insertIdBBDD(){ if(esMotorPostgreSqlBBDD()) { return pg_las_oid(); } else { global $link; return mysqli_insert_id($link); } } function numRowsBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_num_rows($q); } else { return mysql_num_rows($q); } } function beginTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("BEGIN"); } else { global $link; return @mysqli_query($link, "BEGIN"); } } function commitTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("COMMIT"); } else { global $link; return @mysqli_query($link, "COMMIT"); } } function rollbackTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("ROLLBACK"); } else { global $link; return @mysqli_query($link, "ROLLBACK"); } } /* * Para que funcione el export a CSV es necesario que el usuario de MySql tenga el permiso de file: * GRANT FILE ON *.* TO 'john'@'localhost';flush privileges; */ function exportToCsvBBDD($tableName, $fileOutputName, $headers = null, $tableColsFrom = "", $tmpDir = "") { includeInc("archivos"); if(!esMotorMySqlBBDD()) { exit("BASEDATOS: Solo se puede exportar a CVS con BBDD MySql"); } if($tmpDir == "") { //Miramos el directorio de MySql $sql = "SELECT @@secure_file_priv AS tmpDir;"; $sqlQ = queryBBDD($sql); $sqlA = fetchArrayBBDD($sqlQ); freeResultBBDD($sqlQ); if(!is_null($sqlA['tmpDir']) && $sqlA['tmpDir'] != "NULL" && $sqlA['tmpDir'] != "") { $tmpDir = $sqlA['tmpDir']; } else { $tmpDir = sys_get_temp_dir(); } } else { $tmpDir = (is_dir($tmpDir) && file_exists($tmpDir) ? $tmpDir : sys_get_temp_dir()); } $tableColsFrom = ($tableColsFrom == "" ? "*" : $tableColsFrom); $tmpDir = str_replace("\\", "/", $tmpDir); $tmpDir .= (substr($tmpDir, -1, strlen(1)) === "/" ? "" : "/"); $exportTmpFile = $tmpDir.time()."csv.tmp"; $sql = "SELECT ".$tableColsFrom." INTO OUTFILE '".$exportTmpFile."' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '".PHP_EOL."' FROM ".$tableName; //Borramos el fichero temporal si ya existía if(file_exists($exportTmpFile)) { eliminarArchivo($exportTmpFile); } //Ejecutamos la consulta if(!queryBBDD($sql)) { exit("BASEDATOS: Error al generar el CSV MySql (".mysql_error()."). SQL: ".$sql); } if(!file_exists($exportTmpFile)) { exit("BASEDATOS: PHP no existe el fichero: ".$exportTmpFile); } if(!is_readable($exportTmpFile)) { exit("BASEDATOS: PHP no tiene permisos para leer el fichero: ".$exportTmpFile); } //Descargamos el CSV if(file_exists($exportTmpFile)) { //descargarArchivo($exportTmpFile, $fileOutputName.".csv"); header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename='.$fileOutputName.'.csv'); header('Pragma: no-cache'); if(!is_null($headers) && is_array($headers)) { echo utf8_decode('"=""'.implode('""";"=""', $headers).'"""'.PHP_EOL); } $fp = fopen($exportTmpFile, 'r'); if($fp){ while(($line = fgets($fp)) !== false) { if($line != "") { $line = str_replace(PHP_EOL, '', $line); $line = str_replace('"', '', $line); $line = str_replace(';', '""";"=""', $line); //$line = str_replace(';"', '"";"="', $line); //$line = str_replace('";', '"";"="', $line); echo utf8_decode('"=""'.$line.'"""'.PHP_EOL); //echo utf8_decode($line.PHP_EOL); } } fclose($fp); eliminarArchivo($exportTmpFile); } return true; } else{ return false; } } function getMotorBBDD() { global $motorBBDD; if(isset($motorBBDD)) { return $motorBBDD; } else { return BASEDATOS_MOTOR_MYSQL; } } function esMotorPostgreSqlBBDD() { return (getMotorBBDD() == BASEDATOS_MOTOR_POSTGRESQL); } function esMotorMySqlBBDD() { return (getMotorBBDD() == BASEDATOS_MOTOR_MYSQL); } if(!function_exists('mysqli_set_charset')) { function mysqli_set_charset($dbh, $charset) { return mysqli_query($dbh, "set names $charset", $dbh); } } $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_unset(); session_destroy(); session_regenerate_id(true); } $_SESSION['ultima_actividad'] = time(); return sessionId(); } function finalizaSession() { if(sessionAvailable()) { session_destroy(); session_regenerate_id(); } } 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); }