SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Varias instruções na mesma query MySQL R41-4

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11625
    Moedas : 1032880
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Varias instruções na mesma query MySQL R41-4 Empty [Tutorial] Varias instruções na mesma query MySQL R41-4

    Mensagem por Weslley_Script Sex 17 Mar 2023 - 10:39

    Como executar vбrias instruções em uma mesma query MySQL
    Historia
    Estava pesquisando sobre algumas coisas no forum e encontrei um tуpico perguntando como executar mais de uma instruзгo em uma ъnica query. Nгo era meu objetivo encontrar uma resposta para essa pergunta, mas algum tempo depois vi algo que chamou minha atenзгo e poderia resolver esse problema. Esse pequeno tutorial vai explicar como fazer isso, e espero que sirva para alguйm.

    Let's get start it
    Para você poder finalmente fazer uma query com mais de uma instruзгo, precisa executar alguns simples passos.
    Talvez vocк nгo tenha percebido, mas o mysql_connect tem um parametro opcional chamado option_id e essa é a estrela desse tutorial.

    Primeiro deve-se criar uma instвncia de opзхes para coneзгo MySQL dessa forma:



    Código:
    public OnGamemodeInit()
    {
        new MySQLOpt:mysql_opcoes = mysql_init_options();


    E a partir dar pode-se utilizar a funзгo


    Código:
    mysql_set_options(MySQLOpt:option_id, E_MYSQL_OPTION:type, ...) 

    para definir as opções abaixo na conexгo mysql.
    [Tutorial] Varias instruções na mesma query MySQL R41-4 9JjiBig
    (Fonte:sampwiki)

    *Vou utilizar a opзгo MULTI_STATEMENTS e AUTO_RECONNECT para o tutorial, se quiser utilizar as outras fique a vontade.

    Setar MULTI_STATEMENTS como true, permitirб que vocк execute mais de uma instruзгo na mesma consulta, e o AUTO_RECONNECT faz com que o plugin MySQL tente se reconectar caso a conexгo caia por algum motivo.


    Código:
    public OnGamemodeInit()
    {
        new MySQLOpt:mysql_opcoes = mysql_init_options();
        mysql_set_option(mysql_options, AUTO_RECONNECT, true);
        mysql_set_option(mysql_options, MULTI_STATEMENTS, true);


    Essas configurações devem, por fim, serem utilizadas na conexгo com o banco de dados como ъltimo parametro.


    Código:
    new MySQL:handler;
    public OnGamemodeInit()
    {
        new MySQLOpt:mysql_opcoes = mysql_init_options();
        mysql_set_option(mysql_opcoes, AUTO_RECONNECT, true);
        mysql_set_option(mysql_opcoes, MULTI_STATEMENTS, true);
        handler = mysql_connect(MySQL_HOST, MySQLSQL_USER, MySQLSQL_PASS, MySQLSQL_DB,mysql_opcoes);


    Como fazer a query agora?
    É preciso tomar cuidado com apenas uma coisa: O tirano do ;
    Imaginemos uma tabela chamada `players` que tem as colunas nick senha. Para inserir dois, trкs whatever novos jogadores nessa tabela, deve-se colocar ponto e virgula para separar as instruзхes, exceto na ultima.



    Código:
    mysql_query(handler,
    "INSERT INTO `players` (`nick`,senha) VALUES ('Jгo','54FD89SDFS21SD8');
    INSERT INTO `players` (`nick`,senha) VALUES ('Ramon','@321654@334s'); 
    INSERT INTO `players` (`nick`,senha) VALUES ('Calisto','senha123');
    INSERT INTO `players` (`nick`,senha) VALUES ('Rosvenal','password')
    "
    ); 

    É claro que normalmente isso nгo aconteceria em um cуdigo, mas pode ser ъtil para criar um registro na tabela `bans` e dar UPDATE na tabela `players` na mesma consulta.

    Caso alguém use mysql_connect_file tambйm é possнvel setar o MULTI_STATEMENTS, porйm isso é feito no proprio arquivo.

    Caso tenha alguma sugestгo ou crнtica fique a vontade para comentar.


    Creditos: augustogdo



    [Tutorial] Varias instruções na mesma query MySQL R41-4 D07Xwqb
    [Tutorial] Varias instruções na mesma query MySQL R41-4 Yjab9HN

      Data/hora atual: Qui 7 Nov 2024 - 18:46