Jump to content

Kelen Miranda Silva

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

0 Comum

About Kelen Miranda Silva

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Kelen Miranda Silva

    POO e PDO

    Olá pessoal. Estou aprendendo PDO e POO. Estou para fins de estudo, migrando um sistema meu procedural para POO. E obvio, recebendo varios erros e pesquisando muito. O erro da vez é este: Fatal error: Call to undefined method PDO::getMenu() in C:\xampp\htdocs\admacuco10\includes\sidebar.php on line 47 Na linha 47 tenho o seguinte: ... <ul class="sidebar-menu"> <li class="header">MAIN NAVIGATION</li> <?php require_once("model/dbconn.php"); require_once("model/sql.php"); $query = dbconn::getInstance(); $data = $query->getMenu(); //Linha 47 $key = $data[1]; foreach($key as $menu) { ?> ...Continua Agora segue a classe que contém o getMenu <?php class sql extends dbconn { public static $instance; private function __construct() { // } public static function getInstance() { if (!isset(self::$instance)) self::$instance = new sql(); return self::$instance; } public function getMenu() // Este aqui { try { $db="select * from r_menu order by urutan"; $stmt=dbconn::getInstance()->prepare($sql); $stmt->execute(); $stat[0] = true; $stat[1] = $stmt->fetchAll(PDO::FETCH_ASSOC); return $stat; } catch(PDOException $ex) { $stat[0] = false; $stat[1] = $ex->getMessage(); return $stat; } } //Continua... Partindo da premissa que sou leiga no assunto POO e PDO, dêem uma luz aí. Grata.
  2. Kelen Miranda Silva

    Conexao PDO

    Aleluias.... Gabriel e Omar.... Muuuuiiiito obrigada mesmo. Deu certo aqui. Qual das soluções? Todas elas... Fiz vários testes aqui para aprender.Tenho muita dificuldades. Embora todos dizem que POO é mais facil e facilita, acredito, mas mudar do procedural está realmente complicado. O bom que eu estou aprendendo. As ultimas explicações de vocês deixou tudo mais claro. É assim que iniciante como eu entende, porque as vezes algo que é comum pra que já está na area há mais tempo, pode ser um bicho de 7 cabeças pra gente.Valeu mesmo.
  3. Kelen Miranda Silva

    Conexao PDO

    Ao seguir sua dica, ele me retornou o erro: Fatal error: Call to undefined method dbconn::prepare() in C:\xampp\htdocs\...\index.php on line 49 Segue o código completo: dbconn.php <?php class dbconn { public $dblocal; public function __construct() { } public function initDBO() { $this->dblocal = new PDO("mysql:host=localhost;dbname=meubanco;charset=latin1","meuuser","minhasenha",array(PDO::ATTR_PERSISTENT => true)); $this->dblocal->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } } ?> No arquivo com erros: index.php <?php include ("model/dbconn.php"); if(isset($_POST['logar'])) { //Recuperar Dados do Form $usuario=trim(strip_tags($_POST['usuario'])); $senha=trim(strip_tags($_POST['senha'])); //Selecionar Banco de Dados$ $select = "SELECT * from tab_usuarios WHERE email=:usuario AND senha=:senha"; try { $conexao = new dbconn(); //Incluida por orientacao do Amigo Gabriel - Gerou o erro (atal error: Call to undefined method dbconn::prepare() in C:\xampp\htdocs\...) $result = $conexao->prepare($select); //Antes estava aqui o erro. $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->execute(); //Contagem de Registro PDO $contar = $result->rowCount(); if($contar>0) { //Se tiver um registro no BD... $usuario=$_POST['usuario']; $senha=$_POST['senha']; //Criamos uma session para guardar o user e a senha $_SESSION['usuarioad'] = $usuario; $_SESSION['senhaad'] = $usuario; echo '<div class="alert alert-sucess" role="alert"> <strong>Logado com sucesso!</strong> Redirecionando.... </div>'; header ("Refresh: 2, home.php");exit; }else { echo '<div class="alert alert-dangers" role="alert"> <strong>Erro ao Logar!</strong> Usuário e/ou Senha Incorretos. </div>'; } }catch(PDOException $e) { } } ?> Mais uma vez obrigado pela atenção
  4. Kelen Miranda Silva

    Conexao PDO

    Você tem razão... É exatamente isso que estou fazendo. Estou lendo vários manuais e vendo videos e agora procurei o fórum. Enfim, é muito conteúdo. Só queria entender como fazer pra que eu possa substituir a conexão de $conexao = new PDO('mysql:host=localhost;dbname=meubanco','meuuser',''); para o jeito que está, dentro de uma classe. Isto funcionava antes com a conexão do jeito acima. E também tentei como a Gabriel sugeriu. Como o amigo Gabriel ensinou, $this, não pode ser usado neste caso. Entendi. Mudei o tipo de conexão. E aqui o que deveria mudar? Tentei isto... $conexão= new dbconn(); antes da linha acima, mas também não deu... De qualquer forma, grata desde já...
  5. Kelen Miranda Silva

    Conexao PDO

    Tentei todas as opções... Nesta, $result = $conexao->dblocal->prepare($select); Gera o seguinte erro: Notice: Undefined variable: dblocal in C:\xampp\htdocs\admacuco4\index.php on line 57 Notice: Trying to get property of non-object in C:\xampp\htdocs\admacuco4\index.php on line 57 Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\admacuco4\index.php on line 57 Agora veja meu código: dbconn.php <?php class dbconn { public $dblocal; public function __construct() { } public function initDBO() { $this->dblocal = new PDO("mysql:host=localhost;dbname=meubanco;charset=latin1","meuuser","minhasenha",array(PDO::ATTR_PERSISTENT => true)); $this->dblocal->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } ?> Agora minha página com erro: Obs. Arquivo anterior incluso com require... ... <?php if(isset($_POST['logar'])){ //Recuperar Dados do Form $usuario=trim(strip_tags($_POST['usuario'])); $senha=trim(strip_tags($_POST['senha'])); //Selecionar Banco de Dados$ $select = "SELECT * from tab_usuarios WHERE email=:usuario AND senha=:senha"; try { $result = $conexao->dblocal->prepare($select); //Limha 57 com erro $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->execute(); //O código continua, mas acho que até dá pra ver meu problema. //A ideia aqui é a criação de um menu, que recupera dados do banco Mysql. ?> ... Esta variável $conexão, não existe em lugar algum. Portanto o PHP informa isto... Ela existia antes de eu mexer no código, como informei no início do post. Lembrando que tenho pouco tempo de estudo do PHP. Estou vindo para ele cheio de manias de Acces/VBA. Lendo demais aqui... mas com a ajuda de vcs, penso que vai dar certo.
  6. Kelen Miranda Silva

    Conexao PDO

    Obridada. Vou testar e retorno pra dizer o que consegui.
  7. Kelen Miranda Silva

    Conexao PDO

    Olá, preciso de uma ajuda. Sou iniciante em php. Tinha uma conexão desta forma: $conexao = new PDO('mysql:host=localhost;dbname=meubanco','meuuser',''); No entanto para fins de aprendizado ela ficou assim... try { class dbconn { public $dblocal; public function __construct() { } public function initDBO() { $this->dblocal = new PDO("mysql:host=localhost;dbname=meubanco;charset=latin1","root","",array(PDO::ATTR_PERSISTENT => true)); $this->dblocal->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } } } ?> Beleza. A conexão funciona sem problemas. Agora veja esta linha: $result = $conexão->prepare($select); Aqui eu usava a variável ($conexão), agora tentei usar a variável ($this) e recebo um erro. (Fatal error: Using $this when not in object context in ) Como resolver isto, já que o nome não é mais "$conexão" e sim "$this" que não pode ser usado? Grato.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.