Ir para conteúdo
Fórum Script Brasil
  • 0

Classe: a minha primeira função estática instancia( )


Frank K Hosaka

Pergunta

Eu ainda não consegui entender a função estática, ele é um conceito muito abstrato. Pelo que vi nos tutoriais, a função estática permite usar a classe ao invés de usar um objeto (uma espécie de cópia da classe com atributos particulares). Com a ajuda da Gemini consegui montar o código, entender que é o problema, eu ainda não sei o que é "injeção de SQL" e não sei como o PDO pode evitá-lo.

<?php
class Conn
{
    private static $instancia;
    private $pdo;

    private function __construct()
    {
      $this->pdo=new PDO("mysql:host=localhost;dbname=diario","root","");
    }

    static function instancia()
    {
        if(!self::$instancia)
        {
            self::$instancia=new self();
        }
        return self::$instancia;
    }
    
    function select($sql,$params=[])
    {
        $stmt=$this->pdo->prepare("select $sql");
        for($i=0;$i<count($params);$i++)
        {
          $stmt->bindParam($i+1,$params[$i]);
        }
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_OBJ);
    }
        
}
$codprod=1;
$produto=Conn::instancia()->select("* from tbprod where codprod = ?",[$codprod]);
var_dump($produto);

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...