<commit_before><?php

/**
 * YunhoDBExport
 * Librería para exportar a MS Excel desde MySQL
 *
 * @version 0.1.0
 * @author <NAME> <<EMAIL>>
 * @link https://github.com/JuanLopezDev/YunhoDBExport
 * @license MIT
 */
class YunhoDBExport {

  var $_dbhost;
  var $_dbname;
  var $_dbuser;
  var $_dbpassword;
  var $_data;
  var $_table;
  var $_dsn;
  var $_dbh;
  var $_dbhex;
  var $_is_connected;
  var $_format;

  /**
   * Constructor de la clase
   * @param string $_dbhost      Nombre del host
   * @param string $_dbname      Nombre de la base de datos
   * @param string $_dbuser      Nombre de usuario
   * @param string $_dbpassword  <PASSWORD> usuario
   */
  function __construct($_dbhost, $_dbname, $_dbuser, $_dbpassword) {
    $this->_dbhost = $_dbhost;
    $this->_dbname = $_dbname;
    $this->_dbuser = $_dbuser;
    $this->_dbpassword = <PASSWORD>;
    $this->_dsn = 'mysql:dbname=' . $_dbname . ';host=' . $_dbhost;
    $this->to_excel();
  }

  /**
   * Conexión a base de datos
   * @return void
   */
  public function connect() {
    try {
      $this->_dbh = new PDO($this->_dsn, $this->_dbuser, $this->_dbpassword, array(
				PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
				PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE,
			));
      $this->_dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $this->_is_connected = TRUE;
    } catch (PDOException $e) {
      $this->_dbhex = $e;
      $this->_is_connected = FALSE;
    }
  }

  /**
   * Verifica la conexión a la base de datos
   * @return bool
   */
  public function is_connected() {
    return $this->_is_connected;
  }

  /**
   * Retorna el objeto PDO
   * @return PDO
   */
  public function get_dbh() {
    return $this->_dbh;
  }

  /**
   * Retorna un objeto PDOException
   * @return PDOException
   */
  public function get_error() {
    return $this->_dbhex;
  }

  /**
   * Retorna el tipo formato
   * @return string
   */
  public function get_format() {
    return $this->_format;
  }

  /**
   * Retorna los datos de consulta
   * @return array
   */
  public function get_data() {
    return $this->_data;
  }

  /**
   * Ejecuta consulta SQL
   *
   * @param string $sql Consulta SQL
   * @return array
   */
  public function query($sql) {
    $data = NULL;

    try {
      if ($this->is_connected()) {
        $sth = $this->_dbh->prepare($sql);
        $sth->execute();
        $data = $sth->fetchAll(PDO::FETCH_ASSOC);
      }<commit_msg>Agergado set_data() y set_dbh()<commit_after><?php

/**
 * YunhoDBExport
 * Librería para exportar a MS Excel desde MySQL
 *
 * @version 0.1.0
 * @author <NAME> <<EMAIL>>
 * @link https://github.com/JuanLopezDev/YunhoDBExport
 * @license MIT
 */
class YunhoDBExport {

  var $_dbhost;
  var $_dbname;
  var $_dbuser;
  var $_dbpassword;
  var $_data;
  var $_table;
  var $_dsn;
  var $_dbh;
  var $_dbhex;
  var $_is_connected;
  var $_format;

  /**
   * Constructor de la clase
   * @param string $dbhost      Nombre del host
   * @param string $dbname      Nombre de la base de datos
   * @param string $dbuser      Nombre de usuario
   * @param string $dbpassword  <PASSWORD> de usuario
   */
  function __construct($dbhost = '', $dbname = '', $dbuser = '', $dbpassword = '') {
    $this->_dbhost = $dbhost;
    $this->_dbname = $dbname;
    $this->_dbuser = $dbuser;
    $this->_dbpassword = $<PASSWORD>;
    $this->_dsn = 'mysql:dbname=' . $dbname . ';host=' . $dbhost;
    $this->to_excel();
  }

  /**
   * Conexión a base de datos
   * @return void
   */
  public function connect() {
    try {
      $this->_dbh = new PDO($this->_dsn, $this->_dbuser, $this->_dbpassword, array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE,
      ));
      $this->_dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $this->_is_connected = TRUE;
    } catch (PDOException $e) {
      $this->_dbhex = $e;
      $this->_is_connected = FALSE;
    }
  }

  /**
   * Verifica la conexión a la base de datos
   * @return bool
   */
  public function is_connected() {
    return $this->_is_connected;
  }

  /**
   * Retorna el objeto PDO
   * @return PDO
   */
  public function get_dbh() {
    return $this->_dbh;
  }

  /**
   * Retorna un objeto PDOException
   * @return PDOException
   */
  public function get_error() {
    return $this->_dbhex;
  }

  /**
   * Retorna el tipo formato
   * @return string
   */
  public function get_format() {
    return $this->_format;
  }

  /**
   * Retorna los datos de consulta
   * @return array
   */
  public function get_data() {
    return $this->_data;
  }

  /**
   * Asigna un objeto PDO existente
   * @param PDO $dbh      Objecto PDO
   * @return void
   */
  public function set_dbh($dbh) {
    $this->_dbh = ($dbh instanceof PDO) ? $dbh : NULL;
  }

  /**
   * Asigna array de datos
   * @param array $data Array de datos
   * @return void
   */
  public function set_data($data) {
    $this->_data = $data;
  }

  /**
   * Ejecuta consulta SQL
   *
   * @param string $sql Consulta SQL
   * @return array
   */
  public function query($sql) {
    $data = NULL;

    try {
      if ($this->is_connected()) {
        $sth = $this->_dbh->prepare($sql);
        $sth->execute();
        $data = $sth->fetchAll(PDO::FETCH_ASSOC);
      }
{'fraction_non_alphanumeric': 0.14594696257287945, 'fraction_numerical': 0.0015046078615760768, 'mean_word_length': 2.557190635451505, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 69, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3268251', 'n_tokens_mistral': 1964, 'n_tokens_neox': 1930, 'n_words': 460}