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
.