Ir para conteúdo
kamikazzi

Significado de alguns conceitos php e sql

Recommended Posts

Boas,

será que me pode dizer o significa alguns destes "comandos" php?

Spoiler

$resultado = $ligacao->prepare(...);


$resultado->bind_param(...);


$resultado->execute();

 

$professor=$resultadoencontrado->fetch_assoc();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Citar

$resultado = $ligacao->prepare(...);

Prepara uma Instrução/SQL para execução.

 

Citar

$resultado->bind_param(...);

Liga/Referência um Parâmetro ao nome de uma Variável

ou Constante especifica.

 

Citar

$resultado->execute();

Executa a Instrução/SQL preparada.

 

Citar

$professor=$resultadoencontrado->fetch_assoc();

Retorna um Array indexado pelo nome da coluna da tabela

conforme os resultados da execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso daí é a gramática do PHP para o motor PDO. O outro motor é mysqli, mas esse só serve para o MySQL, enquanto que o PDO pode trabalhar com outro tipo de banco de dados.

 

Para o PHP conectar ao banco de dados, ele precisa de uma conexão, no seu exemplo, ele foi chamado de ligação:

$ligacao=new PDO("mysql:host=localhost;dbname=laravel","root","");

Com a conexão, o PHP usa a gramática do SQL para conversar com o banco de dados:
 

$resultado=$ligacao->prepare("select professor from safados where reputacao = :reputacao");

A gramática do SQL está incompleta, falta definir o parâmetro :reputacao, assim:
 

$resultado->bindParam(':reputacao','o mais safado de todos');

Finalmente, o PHP pede para executar a tarefa:
 

$resultado->execute( );

Para o PHP verificar se o banco de dados executou a tarefa, o PHP pede para que traga os resultados, e guarde na variável $professor:
 

$professor=$resultado->fetch_assoc();

Note que a última linha é diferente da sua, aqui certamente o PHP vai soltar uma mensagem de erro.

Em linguagem acadêmica $ligação é uma instância da classe PDO.

prepare, bindParam, execute, fetch são os métodos da classe PDO.
classe é uma forma avançada de programar. Para incentivar você a estudar classe, tente criar uma classe chamada princesa, onde você define os predicados dela (altura, cor do cabelo,cintura) e o que ela pode fazer (menosprezar, xingar, fazergestosobscenos). É muito difícil, mas assim que você pegar o jeito, vai querer abandonar o PHP e partir para o Laravel.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Frank K Hosaka disse:

É muito difícil, mas assim que você pegar o jeito, vai querer abandonar o PHP e partir para o Laravel.

Laravel nada mais é que um framework que usa o PHP logo a ferramenta tem suas raízes que é o PHP.

Mas sim, não é PHP bruto e simples. Possui suas próprias peculiaridades para usar o PHP.

Não uso e não recomendo o uso de frameworks apesar deles serem de grandiosa utilidade por agilizar conceitos básicos do desenvolvimento.

 

Um framework te prende a ele e somente a ele impedindo e limitando o que pode ser feito apenas usando as sintaxes do simples PHP, fora que com que o utilizador aos poucos perca suas capacidades de desenvolver um software, robusto e leve.

Frameworks são Úteis? Claro que sim.

Frameworks são Inúteis? Claro que sim.

 

Orientação ao objeto não é nada difícil, os tutoriais/aulas que tem por aí que enfiam isso na cabeça de quem está a aprender só para o egocentrismo de dizer: "Orientação é difícil veja como sou expert por te ensinar".

Orientação ao objeto é que torna a programação em PHP muito mais fácil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu gosto do Laravel. No princípio eu instalei, sonhando em aprender a linguagem orientada a objetos. Isso é um grande engano. Laravel já é um objeto, restando apenas ao usuário a se limitar a usar as suas propriedades e métodos, mas que eu acho ele fantástico, isso eu acho.

 

A programação orientada a objetos é um tópico novo para mim. Estou começando agora a estudá-lo. Para o meu desespero, o namespace, o define, o spl_autoloader,  nada disso está funcionando comigo. Eu fico perdido com isso. Assim, o máximo que eu aprendi foi usar a herança de classe, aquilo é muito bom! Para chamar um arquivo, eu uso o endereço absoluto, começando com o $_USER['DOCUMENT_ROOT'] pelo PHP ou "../diretorio/arquivo.php" pelo HTML.

No projeto atual, eu inventei o básico.html, que vou incluir em todos os views. O máximo que eu consegui fazer foi definir o CDN do Bootstrap, mas eu fiz a besteira de estilizar o <body>, e só enfrento problemas. Hoje eu pretendo tirar o estilo do <body> do básico.html, para defini-lo em cada página em particular. É assim que eu estudo a programação orientada a objetos, o famoso estilo controles/modelos/visões. Eu desisti de procurar tutoriais, a maior parte deles mexe no .htaccess, e usa o composer para instalar soluções de terceiros. Eu usei um e acabei perdendo o meu direito de acessar a minha pasta astudy, eu fiquei indignado. Ontem eu vi um tutorial de autoload, eu fiquei indignado. O rapaz trabalha tudo no diretório raiz. Eu preciso de um autoload que funciona num ambiente em que os arquivos são distribuidos em pastas, e isso eu não consigo encontrar. Assim, só me resta usar o meu método científico de tentativa e erro.

Ou eu estou procurando no lugar errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Frank K Hosaka Sugiro que crie um tópico sobre o assunto, para não desviar esse.

Seu problema me parece ser da configuração do seu PHP, o que requer alguns posts até encontrar qual é o problema mesmo.

 

Faça o download desse projeto meu que nem vou trabalhar mais nele.

 https://github.com/Spell-Master/wesite_pessoal

Em system/config/connections.php configure um banco de dados seu aí.

O banco de dados crie uma tabela e um registro qualquer.

Peque qualquer arquivo dentro de modules existe até um de teste de produção _TESTE_.php

Nele faça a leitura da tabela que você criou:

<?php
$objeto = new Select();
$objeto->query('nome_da_tabela_no_banco_de_dados');

echo "<pre>";
var_dump($objeto->result());

Se configurou corretamente o acesso em connections.php e não há problemas de configuração do seu php verá todos os registros da tabela no banco de dados que você criou.

Note que em nenhum momento o arquivo da classe Select.php e nem a Connect.php foram incluídas ou requeridas elas estão em diretórios distintos, mas uma função usada no projeto o spl_autoload_register fez a mágica acontecer.

 

Se não funcionou com meu projeto, crie um tópico a respeito do problema para que toda comunidade possa ajudar a encontrar uma solução.

Frameworks podem causar anomalias ao usar recursos nativos do PHP ou até conflitar com eles, normalmente eles para funcionar desativam ou ativam aplicações do PHP alterando sua configuração padrão.

Também temos o lado da versão do PHP, enfim são várias questões a serem abordadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 28/11/2023 at 20:04, Omar~ disse:

Laravel nada mais é que um framework que usa o PHP logo a ferramenta tem suas raízes que é o PHP.

Mas sim, não é PHP bruto e simples. Possui suas próprias peculiaridades para usar o PHP.

Não uso e não recomendo o uso de frameworks apesar deles serem de grandiosa utilidade por agilizar conceitos básicos do desenvolvimento.

 

Um framework te prende a ele e somente a ele impedindo e limitando o que pode ser feito apenas usando as sintaxes do simples PHP, fora que com que o utilizador aos poucos perca suas capacidades de desenvolver um software, robusto e leve.

Frameworks são Úteis? Claro que sim.

Frameworks são Inúteis? Claro que sim.

 

Orientação ao objeto não é nada difícil, os tutoriais/aulas que tem por aí que enfiam isso na cabeça de quem está a aprender só para o egocentrismo de dizer: "Orientação é difícil veja como sou expert por te ensinar".

Orientação ao objeto é que torna a programação em PHP muito mais fácil.


 

Laravel é amplamente reconhecido como um framework robusto no ecossistema do PHP, introduzindo uma estrutura mais rica e elaborada que transcende as capacidades do PHP puro. Essa complexidade, contudo, não deve ser interpretada meramente como uma sobreposição ao PHP, mas como uma abordagem meticulosamente projetada para amplificar as potencialidades do desenvolvimento web.

 

Embora seja verdade que ao adotar um framework como o Laravel, nos comprometemos com determinadas convenções e estruturas predefinidas, essa percepção de limitação é mitigada significativamente quando se integra o conhecimento e as práticas do Domain-Driven Design (DDD). O DDD oferece uma perspectiva que valoriza a modelagem do domínio de negócio, o que, por sua vez, promove uma abordagem mais flexível e adaptativa no desenvolvimento de software. Portanto, o compromisso com as convenções do Laravel pode ser visto não como uma restrição, mas como uma fundação sobre a qual soluções personalizadas e orientadas ao domínio podem ser construídas de forma eficaz.

 

A escolha entre utilizar um framework como o Laravel ou optar pelo PHP puro não é uma questão de certo ou errado, mas sim uma decisão que deve ser alinhada às necessidades específicas de um projeto e à familiaridade do desenvolvedor com as ferramentas disponíveis. Enquanto alguns desenvolvedores apreciam a liberdade e a flexibilidade oferecidas pelo PHP puro, outros valorizam a eficiência, a estrutura e as facilidades que um framework como o Laravel pode oferecer.

 

No que se refere à orientação a objetos, é crucial reconhecer que, apesar de existir uma curva de aprendizado, ela constitui uma abordagem poderosa que proporciona maior clareza, reusabilidade e facilidade de manutenção na programação em PHP. As críticas relacionadas à complexidade da orientação a objetos geralmente surgem de experiências de aprendizado mal direcionadas e não refletem a realidade prática, onde essa abordagem aprimora a gestão de projetos de software complexos e colaborativos.

 

Conclusão, tanto o uso de frameworks como o Laravel quanto a programação em PHP puro apresentam seus próprios méritos e desafios. A decisão entre um e outro deve ser embasada no contexto do projeto, nos requisitos específicos e na experiência do desenvolvedor ou da equipe envolvida. Igualmente, a orientação a objetos, quando compreendida e implementada adequadamente, pode se tornar um recurso inestimável para aumentar a qualidade e a eficiência no desenvolvimento de software.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
    • Por douglas79
      Bom dia,

      Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
      Alguém pode me dizer o porquê que isso está ocorrendo?
      Desde já agradeço a ajuda de vocês, que será bem vinda!
      No aguardo!

      Uso a versão 8.3.9 do PHP
      Meu SO é o Windows 10 32 bits
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me perdoa em postar mais uma dúvida minha.

      Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado.
       
      Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica.
       
      Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL.

      Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem.

      Minha dúvida: 
      após fazer o download da  sped-nfe  e  sped-da, essas biblioteca devem ser gravada em qual pasta ?  ----   na C:\  ou dentro da pasta do Sistema ?
      quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ?

      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida e gostaria do auxílio dos amigos.
       
      Gostaria de após o usuário digitar o Número do Pedido/Orçamento o Sistema Importa todos os Dados para a Entrada/Venda de Produtos.
       
      Exemplo:
      Pedido n.102 com os itens:
        10 un Produto X - vr_unit: 5.00
        05 un Produto Y - vr_unit: 3.00
        03 un Produto Z - vr_unit: 1.50
       
      Importar para Entrada/Venda
      Venda n.1001
      |__> como importo os dados do Pedido n.102 de uma só vez ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Tenho uma tabela em HTML, que me traz as informações de parcelamento corretamente.
       
      Preciso fazer uma validação, mas quando tento somar a coluna que traz valor, a soma faz errada.
       
      Como devo fazer para SOMAR a coluna mostrando as casas decimais ?

      a tabela está assim:
      success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='20%' height='10'style='text-align:center;'><input type='date' name='dtaprc[]' class='form-control d-none' value='"+dateSQL(parcela.data_vencimento)+"'><span>"+parcela.data_vencimento+"</span></td>"; <!--Quero somar essa coluna --> html += "<td width='50%' height='10' style='text-align:center;'><input type='text' name='vlrprc[]' class='form-control d-none' value='"+parcela.valor_parcela+"' oninput='formatNumber(this)'><span>"+parcela.valor_parcela+"</span></td>"; html += "<td width='15%' height='10' style='text-align:center;'>"+ "<button onclick='editarCelulaParcelamento(this)' type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<i class='fa fa-edit'></i></button>"+ "<button type='button' data-save class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<i class='fa fa-save'></i></button>"+ "</td>"; html += "</tr>"; tbody.append(html); somarparcelas(); }); }  
      a função para somar a coluna está assim:
       
      //Função somar Total da Tabela function somarparcelas(){ parcelastotal = 0; //Preenche o INPUT do parcelastotal $("#tbparcs tbody tr").each(function(){ parcelastotal = parcelastotal + parseFloat($(this).find("td:eq(1)").text()); }); $("input[name=parcelastotal]").val(parcelastotal.toFixed(2)); } //o problema que estou encontrando está no parseFloat. //o parseFloat traz: 12 e não 12.57  
       
      Grato,
       
      Cesar
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.