03.01.2017, 17:09
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:
Ya me contarбs que tal sale, Ўmucha suerte!
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;
}
- mysql.ini
- 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_connection, string, sizeof(string),
"SELECT 'clave', 'id' FROM 'cuentas' WHERE nombre = '%s' LIMIT 1",
nombre
);
/* Deberнa ser: */
new string[86];
mysql_format(db_connection, string, sizeof(string),
"SELECT `clave`, `id` FROM `cuentas` WHERE `nombre` = '%s' LIMIT 1",
nombre
);
- 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.
Ya me contarбs que tal sale, Ўmucha suerte!