07.07.2015, 00:23
Para desenvolver projetos de qualidade й preciso estar se adequando e aprimorando nossos conhecimentos.
O uso do MySQL se torna enssкncial para atingir uma qualidade e uma seguranзa adequada em nossos projetos, neste breve tutorial abordarei algumas das principais funзхes do Plugin MySQL criado por BlueG.
1. Ferramentas
O primeiro passo й sempre o mais importante, nele iremos ter conhecimento das ferramentas que iremos utilizar.
WAMPServer - Precisaremos de um servidor Apache rodando em nossa mбquina para trabalhar com o phpMyAdmin, recomendo o WampServer. Fique б vontade para usar outro de sua preferкncia (Xampp, VertrigoServ, EasyPHP).
phpMyAdmin - Por que utilizar o phpMyAdmin? A resposta й bem simples: O phpMyAdmin vai facilitar o trabalho de integraзгo em um futuro UCP e tambйm a praticidade de criaзгo e administraзгo de banco de dados.
Plugin MySQL (BlueG) - Utilizaremos este plugin por ser o mais atual presente na comunidade e ao meu ver o melhor.
2. Estrutura
Tendo jб todas as ferramentas a disposiзгo precisaremos montar a estrutura do nosso sistema, й importante saber que ao salvar uma informaзгo precisaremos de uma identificaзгo para posteriormente poder identificar e carregar esta informaзгo salva. Tendo isto em mente precisaremos de um ID (Identificaзгo), entгo toda tabela que criarmos, precisaremos de uma coluna ID, por exemplo:
AUTO_INCREMENT - Esta funзгo incrementarб o valor da coluna ID, por exemplo: sempre que um novo registro for adicionado a tabela a coluna ID serб incrementada com um valor.
PRIMARY KEY - Esta funзгo indicarб que a coluna terб um valor exclusivo, ou seja, o valor nгo se repetirб.
Tendo essas descriзхes em mente й de extrema importвncia a combinaзгo destas funзхes na coluna ID, pois com ela teremos uma identificaзгo de cada registro, por exemplo:
Ao realizarmos um registro, digamos que pela primeira vez, a coluna id receberб o valor “id = 1”, o registro seguinte receberб o valor “id = 2” , pois os valores contidos na coluna id nгo devem ser repetidos entгo o AUTO_INCREMENT incrementa um valor e a funзгo PRIMARY_KEY informa pro AUTO_INCREMENT que os valores nгo podem ser repetidos.
3. Inserзгo de Dados
Nesta parte entenderemos melhor o funcionamento do processo de inserзгo de dados em uma tabela, utilizarei como exemplo a estrutura mostrada acima.
Partiremos da seguinte situaзгo: Precisamos cadastrar o nome de usuбrio e a senha do usuбrio.
Como podemos ver acima, com apenas duas linhas de cуdigo criamos um registro em nosso banco de dados, vocк pode ter notado que o 'id' nгo foi especificado, o motivo й que por se tratar de uma coluna AUTO_INCREMENT nгo й necessбrio que especifiquemos um valor ao efetuar uma inserзгo.
Vamos agora destrinchar tudo o que foi usado e entendermos o porque de seu uso.
Format - O uso do Format й de grande importвncia para inserir os dados necessбrios na funзгo de inserзгo.
INSERT INTO (INSIRA DENTRO DE) – Nesta funзгo vamos declarar onde vamos inserir os dados, neste caso vamos inserir na tabela 'users' em seguida definimos as colunas as quais vamos inserir os dados '(name,pass)', em seguida especificamos os valores VALUES ('%s','%s'), por se tratar de colunas de texto utilizamos aspas simples e como estamos utilizando o Format utilizamos '%s'.
mysql_query – Esta funзгo fica responsбvel por executar o cadastro, sem ela a “mбgica” nгo ocorreria, nela especificamos o nъmero da conexгo (1), em seguida inserimos o valor formatado na funзгo format (sG).
Deste outro modo visto acima, poderнamos inserir dados na tabela 'users' porйm nгo poderнamos formatar os valores, este modo nгo poderia ser utilizado em um sistema de registro por exemplo.
4. Seleзгo de Dados
Nesta etapa veremos como selecionar dados de um tabela e registrar os dados em variбveis.
Primeiramente vamos criar uma estrutura bбsica em nosso cуdigo para que assim possamos gravar os dados extraнdos de nosso banco de dados:
Agora vamos executar a funзгo de carregamento de dados de um usuбrio especнfico:
cache_get_field_content_int(linha,nome do campo) - Esta funзгo й especifica para a coleta de valores inteiros.
linha - Por se tratar de uma seleзгo de dados especifica onde visamos o retorno de somente 1 resultado
mantemos o valor de linha em '0', pois vamos coletar o valor da primeira linha encontrada.
nome do campo - O nome do campo refere-se ao nome da coluna, entгo neste caso estamos resgatando o valor da coluna 'id'.
Neste segundo caso podemos notar a presenзa de um "for()" que й executado em torno do valor encontrado na variбvel "resultados".
cache_num_rows() - Esta funзгo й responsбvel por retornar o nъmero de linhas encontradas na busca realizada pelo "mysql_query()".
5. Atualizaзгo de Dados
Nesta etapa veremos a grande importвncia da coluna "id", ao atualizarmos um valor presente na tabela precisaremos especificar o ID onde iremos direcionar as mudanзas, por exemplo:
Precisamos mudar o nome de um usuбrio especнfico:
Em outros casos nгo necessitaremos do uso do ID:
O segundo mйtodo pode parecer um pouco confuso mas й simples, iremos gravar na variбvel 'old_name' o atual nome, a funзгo mysql_query vai efetuar uma busca na tabela em busca de um registro que possua name = old_name.
A diferenзa entre ambos й somente a variбvel de identificaзгo, em um buscamos pelo ID e em outro buscamos pelo Nome.
A condiзгo WHERE tem papel fundamental nos dois mйtodos usados acima pois sem ela nгo seria possнvel criar uma condiзгo para execuзгo das atualizaзхes.
6. Consideraзхes Finais
Pois bem, como podemos notar, й muito simples utilizar o MySQL em nossos futuros projetos, nestes exemplos tentei destacar a possibilidade da criaзгo de um cуdigo limpo e simples.
Por exemplo:
No exemplo mostrando acima й necessбrio criar uma nova callback para fazer o retorno dos dados, farei a mesma funзгo de uma forma mais simples abaixo:
Bem, entгo й isso, peзo perdгo por erros ortogrбficos e espero que de alguma forma este texto possa vir a ser ъtil para vocк, deixe o seu feedback com sugestхes para que eu possa estar vindo a melhor nos prуximos tutoriais.
7. Crйditos
Elaboraзгo do Tutorial: MtC
Plugin MySQL: BlueG
O uso do MySQL se torna enssкncial para atingir uma qualidade e uma seguranзa adequada em nossos projetos, neste breve tutorial abordarei algumas das principais funзхes do Plugin MySQL criado por BlueG.
1. Ferramentas
O primeiro passo й sempre o mais importante, nele iremos ter conhecimento das ferramentas que iremos utilizar.
WAMPServer - Precisaremos de um servidor Apache rodando em nossa mбquina para trabalhar com o phpMyAdmin, recomendo o WampServer. Fique б vontade para usar outro de sua preferкncia (Xampp, VertrigoServ, EasyPHP).
phpMyAdmin - Por que utilizar o phpMyAdmin? A resposta й bem simples: O phpMyAdmin vai facilitar o trabalho de integraзгo em um futuro UCP e tambйm a praticidade de criaзгo e administraзгo de banco de dados.
Plugin MySQL (BlueG) - Utilizaremos este plugin por ser o mais atual presente na comunidade e ao meu ver o melhor.
2. Estrutura
Tendo jб todas as ferramentas a disposiзгo precisaremos montar a estrutura do nosso sistema, й importante saber que ao salvar uma informaзгo precisaremos de uma identificaзгo para posteriormente poder identificar e carregar esta informaзгo salva. Tendo isto em mente precisaremos de um ID (Identificaзгo), entгo toda tabela que criarmos, precisaremos de uma coluna ID, por exemplo:
PHP код:
id (Lembre-se sempre de definir como AUTO_INCREMENT & PRIMARY KEY)
name
pass
PRIMARY KEY - Esta funзгo indicarб que a coluna terб um valor exclusivo, ou seja, o valor nгo se repetirб.
Tendo essas descriзхes em mente й de extrema importвncia a combinaзгo destas funзхes na coluna ID, pois com ela teremos uma identificaзгo de cada registro, por exemplo:
Ao realizarmos um registro, digamos que pela primeira vez, a coluna id receberб o valor “id = 1”, o registro seguinte receberб o valor “id = 2” , pois os valores contidos na coluna id nгo devem ser repetidos entгo o AUTO_INCREMENT incrementa um valor e a funзгo PRIMARY_KEY informa pro AUTO_INCREMENT que os valores nгo podem ser repetidos.
3. Inserзгo de Dados
Nesta parte entenderemos melhor o funcionamento do processo de inserзгo de dados em uma tabela, utilizarei como exemplo a estrutura mostrada acima.
Partiremos da seguinte situaзгo: Precisamos cadastrar o nome de usuбrio e a senha do usuбrio.
PHP код:
new sG[128]; //Esta variбvel й meramente ilustrativa, nгo se preocupem com ela.
format(sG,sizeof(sG), "INSERT INTO users (name,pass) VALUES ('%s','%s')",name,pass);
mysql_query(1,sG);
Vamos agora destrinchar tudo o que foi usado e entendermos o porque de seu uso.
Format - O uso do Format й de grande importвncia para inserir os dados necessбrios na funзгo de inserзгo.
INSERT INTO (INSIRA DENTRO DE) – Nesta funзгo vamos declarar onde vamos inserir os dados, neste caso vamos inserir na tabela 'users' em seguida definimos as colunas as quais vamos inserir os dados '(name,pass)', em seguida especificamos os valores VALUES ('%s','%s'), por se tratar de colunas de texto utilizamos aspas simples e como estamos utilizando o Format utilizamos '%s'.
mysql_query – Esta funзгo fica responsбvel por executar o cadastro, sem ela a “mбgica” nгo ocorreria, nela especificamos o nъmero da conexгo (1), em seguida inserimos o valor formatado na funзгo format (sG).
PHP код:
mysql_query(1,"INSERT INTO users (name,pass) VALUES ('Fulano','ZikadaBalada')");
4. Seleзгo de Dados
Nesta etapa veremos como selecionar dados de um tabela e registrar os dados em variбveis.
Primeiramente vamos criar uma estrutura bбsica em nosso cуdigo para que assim possamos gravar os dados extraнdos de nosso banco de dados:
PHP код:
enum users
{
id,
name[MAX_PLAYER_NAME],
pass[128],
}
new User[MAX_PLAYERS][users];
PHP код:
new resultados, n[MAX_PLAYER_NAME];
format(sG,sizeof(sG),"SELECT * FROM users WHERE id = %d",id);
mysq_query(1,sG);
resultados = cache_num_rows();
if(resultados > 0)
{
User[playerid][id] = cache_get_field_content_int(0, "id");
cache_get_field_content(0, "name", n); strcat(User[playerid][Name],n,128);
}
linha - Por se tratar de uma seleзгo de dados especifica onde visamos o retorno de somente 1 resultado
mantemos o valor de linha em '0', pois vamos coletar o valor da primeira linha encontrada.
nome do campo - O nome do campo refere-se ao nome da coluna, entгo neste caso estamos resgatando o valor da coluna 'id'.
PHP код:
enum houses
{
id,
}
new House[MAX_PLAYERS][houses];
PHP код:
new resultados;
mysql_query(1,"SELECT * FROM houses");
mysq_query(1,sG);
resultados = cache_num_rows();
for(new r; r < resultados; r++)
{
House[r][id] = cache_get_field_content_int(r, "id");
}
cache_num_rows() - Esta funзгo й responsбvel por retornar o nъmero de linhas encontradas na busca realizada pelo "mysql_query()".
5. Atualizaзгo de Dados
Nesta etapa veremos a grande importвncia da coluna "id", ao atualizarmos um valor presente na tabela precisaremos especificar o ID onde iremos direcionar as mudanзas, por exemplo:
Precisamos mudar o nome de um usuбrio especнfico:
PHP код:
format(sG,sizeof(sG),"UPDATE users SET name = '%s' WHERE id = %d",name,id);
mysql_query(1,sG);
PHP код:
format(sG,sizeof(sG),"UPDATE users SET name = '%s' WHERE name = '%s'",new_name,old_name);
mysql_query(1,sG);
A diferenзa entre ambos й somente a variбvel de identificaзгo, em um buscamos pelo ID e em outro buscamos pelo Nome.
A condiзгo WHERE tem papel fundamental nos dois mйtodos usados acima pois sem ela nгo seria possнvel criar uma condiзгo para execuзгo das atualizaзхes.
6. Consideraзхes Finais
Pois bem, como podemos notar, й muito simples utilizar o MySQL em nossos futuros projetos, nestes exemplos tentei destacar a possibilidade da criaзгo de um cуdigo limpo e simples.
Por exemplo:
PHP код:
MySQL_function_query(dbHandle, "SELECT * FROM players WHERE name = 'Andre' LIMIT 0,1", true, "OnPlayerDataLoad", "s", "Andre");
forward OnPlayerDataLoad(name[]);
public OnPlayerDataLoad(name[])
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows)
{
print(!"Andre is not a registered account on this server!");
}
else
{
printf("Andre is registered (1 row with %d fields)", fields);
}
}
PHP код:
new rows, fields;
format(sG,sizeof(sG),"SELECT * FROM players WHERE name = 'Andre' LIMIT 0,1");
mysql_query(1,sG);
cache_get_data(rows, fields);
if(!rows)
{
print(!"Andre is not a registered account on this server!");
}
else
{
printf("Andre is registered (1 row with %d fields)", fields);
}
7. Crйditos
Elaboraзгo do Tutorial: MtC
Plugin MySQL: BlueG