Curso de PHP🐘 y MySql🐬 [75.- Consultas preparadas de PDO más fáciles]
En este tutorial vamos a optimizar nuestro código de tal suerte que que la vinculación de parámetros quede dentro de un solo if.
FORMA COMUN
if(empty($buscar['id'])==false){ $where=$where." and id=:id "; } prepare($query); if(empty($buscar['id'])==false){ bindParam(":id",$buscar['id']); }
FORMA OPTIMIZADA
if(empty($buscar['id'])==false){ $where=$where." and id=:id "; $arregloParametros[':id']=$buscar['id']; }
Codigo: https://github.com/programadornovato/php/commit/357f450f53839e7d093908e1f5f16828f0634ec9
<?php class sqlite{ static private $db=null; function __construct() { try { self::$db=new PDO("sqlite:empresa.sqlite"); self::$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); self::$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ); self::crearTablas(); } catch (\Throwable $th) { die("Error al crear la bd empresa ".$th->getMessage()); } } private static function crearTablas(){ $query="CREATE TABLE IF NOT EXISTS productos( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre VARCHAR (100) NOT NULL, precio REAL, categoria VARCHAR (100) NOT NULL, existencia INTEGER (5) NOT NULL, foto VARCHAR (100) NOT NULL );"; try { self::$db->exec($query); } catch (\Throwable $th) { echo "Error al crear la tabla productos".$th->getMessage(); } } public function insertar($producto=array()){ //$nombre=$producto['nombre']; extract($producto); $query="INSERT INTO productos (nombre, precio, categoria, existencia, foto)VALUES (:nombre,:precio,:categoria,:existencia,:foto);"; $sentecia=self::$db->prepare($query); $sentecia->bindParam(':nombre',$nombre); $sentecia->bindParam(':precio',$precio); $sentecia->bindParam(':categoria',$categoria); $sentecia->bindParam(':existencia',$existencia); $sentecia->bindParam(':foto',$foto); if($sentecia->execute()==true){ return true; } else{ return true; } } public function leer($buscar=array()){ $where=" where 1=1 "; $arregloParametros=array(); if(empty($buscar['id'])==false){ $where=$where." and id=:id "; $arregloParametros[':id']=$buscar['id']; } if(empty($buscar['nombre'])==false){ $where=$where." and nombre=:nombre "; $arregloParametros[':nombre']=$buscar['nombre']; } if(empty($buscar['precio'])==false){ $where=$where." and precio=:precio "; $arregloParametros[':precio']=$buscar['precio']; } if(empty($buscar['categoria'])==false){ $where=$where." and categoria=:categoria "; $arregloParametros[':categoria']=$buscar['categoria']; } if(empty($buscar['existencia'])==false){ $where=$where." and existencia=:existencia "; $arregloParametros[':existencia']=$buscar['existencia']; } $query="SELECT id, nombre, precio, categoria, existencia, foto FROM productos $where ;"; $sentencia=self::$db->prepare($query); $sentencia->execute($arregloParametros); $resultado=$sentencia->fetchAll(); return $resultado; } } ?>
🔗Acceder a sqlite desde VSCode: https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite
🔗Pagina SQLite: https://www.sqlite.org/index.html
🔗 Fontawesome: https://www.bootstrapcdn.com/fontawesome/
🎦 Esta lista de reproducción: https://www.youtube.com/playlist?list=PLCTD_CpMeEKS2Dvb-WNrAuDAXObB8GzJ0
Codigos en gdrive: https://drive.google.com/file/d/1tQwYvfL2jiUFc6beTWkOkGmXkq5zzFw2/view?usp=sharing
Gracias por apoyar este canal: https://www.patreon.com/programadornovato?fan_landing=true
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
Ave que vuela, a la cazuela.