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.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

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

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

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

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
×

Informação importante

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