pdoexception fatal error ejemplos php mysql pdo

ejemplos - Conexión PHP de PDO, error fatal



php pdo error (1)

Mi clase de conexión; firstcode.php

class DB_functions { public $db; function __construct() { try{ $db = new PDO("mysql:localhost;dbname=xxx;charset=utf8","xxx","xxx"); echo ''Connected''; }catch(PDOException $e){ print $e->getMessage(); echo "No Connection"; } } function __destruct() {} public function test(){ $query = $db->query("SELECT * FROM User", PDO::FETCH_ASSOC); if($query->rowCount()){ foreach ($query as $row) { print_r($row); } } } }

Mi prueba PHP File;

<?php require_once(''firstcode.php''); $db = new db_functions(); $t = $db->test(); ?>

Y el error que obtuve;

Aviso: variable no definida: db en firstcode.php en la línea 20

Error fatal: Llamar a una consulta de función miembro () en un no objeto en firstcode.php en la línea 20

Gracias por adelantado


Ya casi estás ahí. En tu clase, necesitas cambiar cada iteración de $db con:

$this->db

Entonces tu clase se vería así:

class DB_functions { public $db; function __construct() { try{ $this->db = new PDO("mysql:localhost;dbname=xxx;charset=utf8","xxx","xxx"); echo ''Connected''; }catch(PDOException $e){ print $e->getMessage(); echo "No Connection"; } } function __destruct() {} public function test(){ $query = $this->db->query("SELECT * FROM User", PDO::FETCH_ASSOC); if($query->rowCount()){ foreach ($query as $row) { print_r($row); } } } }

Como hace referencia a la variable de clase interna. Solo es accesible dentro del alcance de la clase y se hace referencia a través de $this .