php pdo FETCH mode

$pdo = new PDO("mysql:host=localhost;dbname=dafiti",'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

$jr=new JugadorRepository($pdo);

$jugador=$jr->findByName("israel");

if($jugador==null){
echo "no se encontro ningun jugador";
}else{
print_r($jugador->id);echo "\n";
print_r($jugador->nombre);
}

donde
public function findByName($name) {

   $sth = $this->pdo->prepare("SELECT * FROM jugadores WHERE UPPER(nombre) LIKE :name ");
   $sth->bindParam("name", $name);
   $sth->execute();
   return $sth->fetch();
}

suponiendo que la clase jugador tiene get y sets
si cambiamos la funcion por:

$sth = $this->pdo->query("SELECT * FROM jugadores WHERE UPPER(nombre) LIKE '".$name."'");
$sth->bindParam("name", $name);
$sth->setFetchMode(PDO::FETCH_CLASS, 'Jugador');
return $sth->fetch();

se podria imprimir los resultados asi:

print_r($jugador->getId());echo "\n";
print_r($jugador->getNombre());


******************
el codigo anterior tambien se puede escribir asi:

$sth = $this->pdo->prepare("SELECT * FROM jugadores WHERE UPPER(nombre) LIKE :name ");
$sth->bindParam("name", $name);
$sth->setFetchMode(PDO::FETCH_CLASS, 'Jugador');
$sth->execute();
return $sth->fetch();

No hay comentarios:

Publicar un comentario

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable