Hoy como no tenía muchas cosas que hacer y mucho que aprender quise experimentar a abrir conexiones con
PDO usando
MySQL. Descomentando en el archivo php.ini la linea extension=php_pdo_mysql.dll y encontrando este
tutorial en google
Me hice un formulario sencillo, solamente con dos campos, un campo ID autoincremental y un campo nombre, solo como prueba, después de realizar una primera prueba exitosa al insertar un campo a la base de datos, quise listar los registros dentro de la misma con este código
Código PHP:
Ver original<?php
/*** mysql servidor ***/
$hostname = 'localhost';
/*** mysql usuario ***/
$username = 'root';
/*** mysql contraseña ***/
$password = '';
/*** mysql base de datos ***/
$dbname='prueba';
/*** ***/
$nombre=$_POST['nombre'];
//echo $nombre;
try
{
/*** Se crea el objeto PDO***/
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
/*** imprime un mensaje diciendo que se ha conectado ***/
echo 'Conectado a la Base de datos';
/*** sentencia SQL ***/
$sql="insert into prueba (id,nombre) value ('','$nombre')";
/*** busca en una declaración al objeto PDO ***/
/*** numero de columnas ***/
echo $count;
/*** sentencia SQL ***/
$esecuele="select * from prueba";
/*** busca en una declaración al objeto PDO ***/
$sentencia=$dbh->exec($esecuele); /*** asigna el atributo para reportar errores ***/
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** numero de columnas ***/
$objeto = $sentencia->fetch(PDO::FETCH_OBJECT);
/*** ciclo que recorreo el objeto ***/
echo $objeto->id.'<br />';
echo $objeto->nombre.'<br />';
/**** Se desconecta la conexion a la base de datos ****/
$dbh=null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Obteniendo este grandioso mensaje
Código Error:
Ver originalFatal error: Call to a member function fetch() on a non-object in \xampp\htdocs\ejemplo\ejemplo_pdo\analizar_formulario_ejemplo.php on line 33
Si, el mensaje dice "Llamada a miembro de la funcion fetch() en un no-objeto" y bla bla bla....
Pero si la
funcion fetch no debería tener ningún error, por que aparece ese grandioso error?