[MYSQL-41-2] no aparecen los dialogos de registro
#2

EDIT: no vi la ъltima respuesta antes de comentar. Echa un vistazo al apartado inferior sobre las comillas.

En la R40 ha cambiado la forma de guardar los logs, ahora en la carpeta del servidor tienes una carpeta llamada logs. Dentro de la misma hay una carpeta llamada plugins y tres archivos que guardan los mensajes segъn la clasificaciуn: error, warning, log-core; en la carpeta deberнa encontrarse mysql.log con toda la informaciуn (debido a mysql_log).

Creo que maddinat0r lo ha puedo asн para organizar mejor los logs en caso de crear otros plugins en el futuro.

Respecto al cуdigo que dejaste yo tendrнa en cuenta lo siguiente:
  • Usar mysql_connect_file.
    Asн no tienes que definir las macros con la informaciуn para establecer la conexiуn. Tambiйn te ahorras tener que usar mysql_global_options, o bien, mysql_init_options y mysql_set_option. Te dejo un ejemplo:

    • mysql.ini
      Код:
      hostname = localhost
      username = root
      password = by_R2D
      database = mibasededatos
      auto_reconnect = true
      multi_statements = false
      pool_size = 2
      server_port = 3306
      ssl_enable = false
    PHP код:
    new MySQL:sql_handle;
    public 
    OnGameModeInit()
    {
        
    mysql_log(ALL);
        
    sql_handle mysql_connect_file("mysql.ini"); // Conexiуn mediante los datos de mysql.ini
        
    if(sql_handle == MYSQL_INVALID_HANDLE  || mysql_errno(sql_handle) != 0)
        {
            
    /*
            No se pudo establecer la conexiуn.
            Ojo a la condiciуn, puedes obtener MYSQL_INVALID_HANDLE y no obtener ningъn error.
            */
        
    }
        else
        {
            
    /* Conexiуn establecida correctamente. */
        
    }
        return 
    1;

    En tu caso como no existe una contraseсa para conectarse a la base de datos debes eliminar el parбmetro password de mysql.ini. El archivo con la informaciуn para establecer la conexiуn debe colocarse en la carpeta principal del servidor.

  • Usar las comillas correctas y las celdas necesarias en las queries
    Normalmente en MySQL las comillas simples se utilizan para indicar que tratamos con datos dinбmicos, es decir, utilizamos '' cuando existen especificadores como: %s, %d, etc. Por otro lado, para indicar nombres de tablas, nombres de campos, etc. utilizamos `` (debido a normas estбndar del MySQL).

    Veamos un ejemplo:
    PHP код:
    new string[150];
    mysql_format(db_connectionstringsizeof(string),
        
    "SELECT 'clave', 'id' FROM 'cuentas' WHERE nombre = '%s' LIMIT 1",
        
    nombre
    );
    /* Deberнa ser: */
    new string[86];
    mysql_format(db_connectionstringsizeof(string),
        
    "SELECT `clave`, `id` FROM `cuentas` WHERE `nombre` = '%s' LIMIT 1",
        
    nombre
    ); 
    Fнjate que hemos especificado 86 caracteres para la consulta, suponiendo que nombre ocupa 24 caracteres el total serнa: 85 + EOS = 86 caracteres.

  • Usar cache_get_value_index (_int, _float) en lugar de cache_get_value_name (_int, _float).
    Simplemente porque es mбs rбpido acceder al нndice que ir comparando el nombre de la columna.
Todo lo demбs lo veo bien, posiblemente el error estй en la consulta debido a las comillas. O igual no tienes creada la tabla cuentas en la base de datos o algo similar.

Ya me contarбs que tal sale, Ўmucha suerte!
Reply


Messages In This Thread
[MYSQL-41-2] no aparecen los dialogos de registro - by GranaT3 - 03.01.2017, 15:58
Re: [MYSQL-41-2] no aparecen los dialogos de registro - by RIDE2DAY - 03.01.2017, 17:09
Respuesta: [MYSQL-41-2] no aparecen los dialogos de registro - by GranaT3 - 03.01.2017, 17:31
Re: [MYSQL-41-2] no aparecen los dialogos de registro - by RIDE2DAY - 03.01.2017, 17:41
Respuesta: [MYSQL-41-2] no aparecen los dialogos de registro - by GranaT3 - 03.01.2017, 17:44
Re: [MYSQL-41-2] no aparecen los dialogos de registro - by RIDE2DAY - 03.01.2017, 17:47

Forum Jump:


Users browsing this thread: 1 Guest(s)