GTA-Center.com » Forum http://www.gta-center.com/forums/ |
|
[GUIDA] Plugin MySQL http://www.gta-center.com/forums/viewtopic.php?f=40&t=149 |
Pagina 1 di 1 |
Autore: | Beyond [ 31/10/2010, 0:03 ] |
Oggetto del messaggio: | [GUIDA] Plugin MySQL |
MYSQL PLUGIN ATTENZIONE!!! La seguente guida tratta un plugin ormai superato ma comunque funzionante, presto verrà postata una guida aggiornata. 1) a_sampmysql.inc Download Link: Click 2a) SAMP-MySql Windows Plugin Package Download: Click 2b) SAMP-MySql Ubuntu Plugin Package Download: Click Di seguito ci sono le istruzioni e informazioni varie riguardo al plugin MySql per SA-MP (Windows Package) il quale potrà essere usato per gestire in un altro modo i dati sul server.(invece che scriverli sui file, ad esempio) Primi passi - Setup I Database (DB) usano linguaggio SQL, per chi non sia pratico di questo linguaggio può cominciare a darci un'occhiata dal di qui. Estraete tutto il contenuto dell'archivio e mettetelo in una cartella a vostra scelta. Copiate ed in collate IL CONTENUTO della cartella "src" e mettetelo dentro la cartella plugins. Copiate ed incollate anche il file "sampmysql.dll" nella cartella plugins. Aprite il file server.cfg e alla riga "plugins" aggiungete di fianco: sampmysql. Andate qui per scaricare l'importantissimo file libmysql.dll che è la libreria del Database. Questo file va messo nella cartella generale del vostro server, ovvero dove è presente il file samp-server.exe. mettete il file "a_sampmysql.inc" dentro la cartella pawno/includes/ del vostro server, aprite la vostra GM e nelle prime righe aggiungete Codice: #include <a_sampmysql> Funzioni & Esempi Elenco Funzioni. Codice: samp_mysql_connect(server[], user[], password[]); samp_mysql_select_db(db[]); samp_mysql_query(query[]); samp_mysql_store_result(); samp_mysql_fetch_row(line[]); samp_mysql_get_field(field[], value[]); //questa funzione non è dichiarata nel file a_sampmysql.inc, aggiungila manualmente, funzionerà perfettamente samp_mysql_num_rows(); samp_mysql_num_fields(); samp_mysql_ping(); samp_mysql_real_escape_string(src[], dest[]); samp_mysql_free_result(); samp_mysql_strtok(dest[], separator[], src[]); samp_mysql_close(); samp_mysql_connect(server[], user[], password[]) La funzione iniziale senza la quale crea la connessione tra il vostro server e il DB. Ritorna il valore 1 se tutto è andato bene altrimenti torna il valore 0. Parametri della funzione: Server[]: IP del Database User[]: Lo username con cui vi connettete al DB Password[]: La password con cui vi connettete al DB Esempio: Codice: samp_mysql_connect(123.45.67.890, UserSKE, PassSKE); Effettua la connesione al Database che specifichiamo. Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0. Parametro della funzione: DB[]: Nient'altro che il nome del database a cui collegarsi. Esempio: Codice: samp_mysql_connect(123.45.67.890, UserSKE, PassSKE); samp_mysql_select_db(NomeDB); samp_mysql_query(query[]) La funzione eseguira una serie di istruzioni nel database: prelevare dati, registrare dati, cancellare dati. Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0. Parametro della funzione: Query[]: Le istruzioni da eseguire. Esempio: Codice: samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); La query appena descritta preleva i valori di tutti i campi della riga, della tabella "utenti", dove il campo "nome_utente" corrisponde alla stringa "Kevin". samp_mysql_store_result() Questa funzione DEVE essere chiamata appena dopo aver eseguito la funzione query appena vista, poichè prepara il risultato della query. Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0. Nessun parametro richiesto Esempio: Codice: samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); samp_mysql_fetch_row(line[]) La funzione "fetch_row" separa tutti i valori dei campi della query eseguita con il carattere "|". Ritorna il valore 1 se tutto è andato per il meglio, se non ci sono altri campi ritorna0. Parametro della funzione: Line[]: La stringa dentro la quale saranno contenuti tutti i valori dei campi della query. Esempio: Codice: new valori[128]; samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); samp_mysql_fetch_row(valori); In questo esempio dentro la stringa "valori" si avrà più o meno una cosa così Codice: "Kevin|kevin.******@libero.it|mypassword|8500" Il primo valore è il nome utente, il secondo è l'email, il terzo è la password e l'ultimo sono i soldi che il giocatore ha IN-GAME. samp_mysql_get_field(field[], value[]) Questa funzione prende il valore di un campo specifico della tabella del database. (Questa funzione va eseguita dopo fetch_row per prendere i valori) Ritorna il valore 1 se tutto è qualche valore è stato trovato, se non ha trovato nulla ritorna0. Parametri della funzione: Field[]: Il nome del campo da cui prelevare il valore. Value[]: La variabile dove verrà inserito il valore dal campo prelevato. Esempio: (Uso sempre lo stesso esempio che si amplia ogni volta in modo che possiate capire) Codice: new valori[128], campo[64]; samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); samp_mysql_fetch_row(valori); samp_mysql_get_field("nome_utente", campo); printf("Dal campo 'nome_utente' è stato prelevato il valore: %s", campo); In questo caso vista la query e il valore preso dentro la stringa "campo" c'è il nome: "Kevin". samp_mysql_num_rows() La funzione ritorna il valore del numero di righe di un certo risultato di una query Nessun parametro richiesto Esempio: Codice: new valori[128], campo[64]; samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); new linee = samp_mysql_num_rows(); samp_mysql_num_field() La funzione ritorna il valore del numero di campi di un certo risultato di una query Nessun parametro richiesto Esempio: Codice: new valori[128], campo[64]; samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); new campi = samp_mysql_num_field(); samp_mysql_num_ping() La funzione controlla che la connessione al DB sia eseguita correttamente. Se torna 0 allora tutto è ok, se torna un valore diverso da 0 allora la connessione non è correttamente riuscita. Nessun parametro richiesto Esempio: Codice: samp_mysql_connect(123.45.67.890, UserSKE, PassSKE); samp_mysql_select_db(NomeDB); if(samp_mysql_ping() == 0) { print("Connessione al DB avvenuta con successo"); } samp_mysql_real_escape_String(src[], dest[]) Questa funzione è davvero molto utile, infatti se dobbiamo eseguire una query essa controlla che non ci siano caratteri speciali e quindi "sistema" la query in modo che non rechi danni al DB. Parametri della funzione: Scr[]: Query sorgente da cui prelevare il codice Dest[]: Stringa dove torna la query sistemata (Questa stringa DEVE essere grande il doppio+1 della query sorgente Es: se "query[64]" allora "query_sist[129]") Esempio: Codice: new q[128], q2[257]; format(q, sizeof(q), "INSERT INTO utenti(nome_utente, email, password, soldi) VALUES('%s', '%s', '%s', %d)", NomeUtente, Email, Pass, Soldi); samp_mysql_real_escape_string(q,q2); samp_mysql_query(q2); La query inserisce nel database i vari valori per stabilire un nuovo account utente. Con la funzione real_escape_string si controlla che tutti i campi siano inseriti senza provocare "buchi" nel sistema. samp_mysql_free_result() La funzione farà crashare il vostro server. Quindi è inutilizzabile comunque essa permette di liberare la memoria alloccata al risultato di una query eseguita. Nessun parametro richiesto Esempio: Codice: samp_mysql_free_result(); samp_mysql_strtok(dest[], separator[], src[]) Questa funzione funziona esattamente come "strtok()", splitta una stringa a seconda del carattere separatore passato come paramentro. Parametri della funzione: Dest[]: La stringa dove destinare il valore di un campo. Separator[]: Il carattere separatore al quale fare riferimento. Src[]: La stringa a cui applicare la funzione. Esempio: Codice: new valori[128], campo[64]; samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin"); samp_mysq_store_result(); samp_mysql_fetch_row(valori); samp_mysql_strtok(campo, "|", valori); printf("Il valore del primo campo della query è: %s", campo); Alla fin fine questa funzione fa un lavoro simile alla funzione "get_field" samp_mysql_close() Chiude la connessione al DB. Nessun parametro richiesto Esempio: Codice: samp_mysql_connect(123.45.67.890, UserSKE, PassSKE); samp_mysql_select_db(NomeDB); if(samp_mysql_ping() == 0) { print("Connessione al DB avvenuta con successo"); } samp_mysql_close(); TUTORIAL MADE BY SKE92beyond AKA Beyond Spero possa servire questo tutorial a qualche utente che usi il DB ;) |
Autore: | MoND [ 31/10/2010, 0:34 ] |
Oggetto del messaggio: | Re: [GUIDA] Plugin MySQL |
Bella SKE |
Autore: | Brian_Furious [ 31/10/2010, 0:55 ] |
Oggetto del messaggio: | Re: [GUIDA] Plugin MySQL |
Bella guida, sto già creando una GM che contiene MySQL |
Autore: | SNaKe_OlD [ 31/10/2010, 10:35 ] |
Oggetto del messaggio: | Re: [GUIDA] Plugin MySQL |
bella guida, in realtà la volevo fa io, ma lo stesso, good :) |
Autore: | Beyond [ 31/10/2010, 11:33 ] |
Oggetto del messaggio: | Re: [GUIDA] Plugin MySQL |
Gradirei non leggere più i messaggi che ho cancellato. Ricordo a Snake che sei un moderatore, quindi se vuoi dire certe cose c'è la sezione cazzeggio. Grazie, B |
Pagina 1 di 1 | Tutti gli orari sono UTC + 1 ora [ ora legale ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |