{"id":7660,"date":"2022-01-12T16:41:20","date_gmt":"2022-01-12T16:41:20","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=7660"},"modified":"2022-01-12T16:50:43","modified_gmt":"2022-01-12T16:50:43","slug":"como-trabajar-con-una-base-de-datos-utilizando-pdo","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/","title":{"rendered":"Como trabajar con una base de datos utilizando PDO"},"content":{"rendered":"<p>Hace var\u00edos a\u00f1os ya habl\u00e9 en este blog sobre <a href=\"https:\/\/www.jose-aguilar.com\/blog\/interactuar-con-una-base-de-datos-utilizando-mysqli\/\" target=\"_blank\" rel=\"noopener\">como interactuar con una base de datos con MySQLi<\/a> pero quer\u00eda agregar una nueva entrada sobre la implementaci\u00f3n de la clase <strong>PDO<\/strong> ya que parece ser mejor y es la que suelo utilizar hoy en d\u00eda para mis desarrollos y me gustar\u00eda d\u00e1rtela a conocer junto con sus beneficios.<\/p>\n<h2>\u00bfQu\u00e9 es PDO?<\/h2>\n<p><strong>PDO<\/strong> tiene como significado<strong> PHP Data Objects<\/strong>, una extensi\u00f3n para acceder a bases de datos con <strong>PHP<\/strong> con la ventaja de que permite acceder con un controlador espec\u00edfico.<\/p>\n<p>Cada servidor tiene disponible diversos controladores que puedes revisar ejecutando la siguiente funci\u00f3n:<\/p>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><a href=\"http:\/\/www.php.net\/print_r\"><span class=\"kw3\">print_r<\/span><\/a><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">getAvailableDrivers<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<p>Por ejemplo, al ejecutar la funci\u00f3n anterior en un servidor local usando Xampp tenemos como resultado:<\/p>\n<div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">Array<\/span><\/a> <span class=\"br0\">&#40;<\/span> <span class=\"br0\">[<\/span>0<span class=\"br0\">]<\/span> <span class=\"sy0\">=&gt;<\/span> <a href=\"http:\/\/www.php.net\/mysql\"><span class=\"kw3\">mysql<\/span><\/a> <span class=\"br0\">[<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">]<\/span> <span class=\"sy0\">=&gt;<\/span> sqlite <span class=\"br0\">&#41;<\/span><\/pre><\/div><\/div>\n<p>Esto significa que en Xampp puede trabajar con 2 motores de base de datos diferentes: mysql y sqlite.<\/p>\n<h2>\u00bfC\u00f3mo <strong>conectar a la base de datos con PDO<\/strong>?<\/h2>\n<p>Yo suelo crear una clase que tenga un m\u00e9todo para conectar con la base de datos.<\/p>\n<p>Algo como lo siguiente:<\/p>\n<div id=\"wpshdo_3\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_3\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_3\"><\/a><a id=\"wpshat_3\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_3\"  onClick=\"javascript:wpsh_toggleBlock(3)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_code(3)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_print(3)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_3\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">class<\/span> Db\n<span class=\"br0\">&#123;<\/span>\n    <span class=\"kw2\">public<\/span> static <span class=\"kw2\">function<\/span> connect<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n    <span class=\"br0\">&#123;<\/span>\n        <span class=\"re0\">$link<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        try <span class=\"br0\">&#123;<\/span>\n            <span class=\"re0\">$link<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> PDO<span class=\"br0\">&#40;<\/span>\n                <span class=\"st0\">&quot;mysql:host=localhost;dbname=nombrebasededatos&quot;<\/span><span class=\"sy0\">,<\/span>\n                <span class=\"st0\">&quot;root&quot;<\/span><span class=\"sy0\">,<\/span>\n                <span class=\"st0\">&quot;&quot;<\/span><span class=\"sy0\">,<\/span>\n                <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">ATTR_ERRMODE<\/span> <span class=\"sy0\">=&gt;<\/span> PDO<span class=\"sy0\">::<\/span><span class=\"me2\">ERRMODE_EXCEPTION<\/span><span class=\"sy0\">,<\/span> PDO<span class=\"sy0\">::<\/span><span class=\"me2\">MYSQL_ATTR_INIT_COMMAND<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">&quot;SET NAMES utf8&quot;<\/span><span class=\"br0\">&#41;<\/span>\n            <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"br0\">&#125;<\/span> catch <span class=\"br0\">&#40;<\/span>PDOException <span class=\"re0\">$e<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n            <span class=\"kw1\">echo<\/span> <span class=\"re0\">$e<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getMessage<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"br0\">&#125;<\/span>\n&nbsp;\n        <span class=\"kw1\">return<\/span> <span class=\"re0\">$link<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span><\/pre><\/div><\/div>\n<p>Usando la estructura de un <em>try {} catch() {}<\/em>, estamos intentando crear una instancia de la clase <strong>PDO<\/strong> con 4 par\u00e1metros:<\/p>\n<ul>\n<li>En el primer par\u00e1metro se define una cadena con el controlador que estamos utilizando, en este caso mysql, el servidor con host=localhost y la base de datos con dbname=nombrebasededatos.<\/li>\n<li>El segundo par\u00e1metro es el nombre de usuario que conecta a la base de datos.<\/li>\n<li>El tercer par\u00e1metro es la contrase\u00f1a. En nuestro caso, vac\u00eda porque estamos trabajando en localhost con Xampp y por defecto la contrase\u00f1a es vac\u00eda.<\/li>\n<li>Y en el cuarto par\u00e1metro definimos un array con las excepciones y el parse con UTF8 para guardar en base de datos sin problemas caracteres latinos como acentos y \u00f1.<\/li>\n<\/ul>\n<p>Si la conexi\u00f3n es fallida, se ejecutar\u00e1 el catch para mostrar el error correspondiente y si la conexi\u00f3n es excitosa se retornar\u00e1 el enlace a la conexi\u00f3n para poder operar con la base de datos.<\/p>\n<h2>\u00bfComo obtener una columna de una tabla de la base de datos con PDO?<\/h2>\n<p>Siguiendo con la misma estructura de un <em>try {} catch() {}, <\/em>podemos retornar el valor de una columna.<\/p>\n<p>En la misma clase u otra podemos hacer lo siguiente para obtener un valor de una tabla:<\/p>\n<div id=\"wpshdo_4\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_4\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_4\"><\/a><a id=\"wpshat_4\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_4\"  onClick=\"javascript:wpsh_toggleBlock(4)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_code(4)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_print(4)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_4\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">public<\/span> static <span class=\"kw2\">function<\/span> getNumProducts<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n<span class=\"br0\">&#123;<\/span>\n    try <span class=\"br0\">&#123;<\/span>\n        <span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span>\n            <span class=\"st_h\">'SELECT COUNT(*) \n            FROM product'<\/span>\n        <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">setFetchMode<\/span><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">FETCH_ASSOC<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"kw1\">return<\/span> <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchColumn<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n    <span class=\"br0\">&#125;<\/span> catch <span class=\"br0\">&#40;<\/span>PDOException <span class=\"re0\">$e<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n        <span class=\"kw1\">return<\/span> <span class=\"re0\">$e<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getMessage<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span><\/pre><\/div><\/div>\n<p>Esta funci\u00f3n retorna el n\u00famero de filas que hay en nuestra tabla de productos.<\/p>\n<p>Conectamos con la base de datos y preparamos la consulta.<\/p>\n<p>Definimos el modo asociativo, ejecutamos la consulta y retornamos el valor con <strong>fetchColumn()<\/strong> que justamente devuelve lo que necesitamos, una \u00fanica columna con el n\u00famero de productos.<\/p>\n<p>Esta misma consulta se podr\u00eda usar con <strong>rowCount()<\/strong> de la siguiente forma:<\/p>\n<div id=\"wpshdo_5\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_5\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_5\"><\/a><a id=\"wpshat_5\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_5\"  onClick=\"javascript:wpsh_toggleBlock(5)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_code(5)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_print(5)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_5\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT * FROM product'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"kw1\">return<\/span> <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">rowCount<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<h2>\u00bfComo obtener varias o todas las filas de una tabla de la base de datos con PDO?<\/h2>\n<p>De la misma forma pero usando la funci\u00f3n <strong>fetchAll()<\/strong> podemos recuperar varias filas:<\/p>\n<div id=\"wpshdo_6\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_6\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_6\"><\/a><a id=\"wpshat_6\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_6\"  onClick=\"javascript:wpsh_toggleBlock(6)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_code(6)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_print(6)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_6\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">public<\/span> static <span class=\"kw2\">function<\/span> getProducts<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n<span class=\"br0\">&#123;<\/span>\n    try <span class=\"br0\">&#123;<\/span>\n        <span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span>\n            <span class=\"st_h\">'SELECT * \n            FROM product'<\/span>\n        <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">setFetchMode<\/span><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">FETCH_ASSOC<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"kw1\">return<\/span> <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchAll<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n    <span class=\"br0\">&#125;<\/span> catch <span class=\"br0\">&#40;<\/span>PDOException <span class=\"re0\">$e<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n        <span class=\"kw1\">return<\/span> <span class=\"re0\">$e<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getMessage<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span><\/pre><\/div><\/div>\n<p>Si hay datos, esta funci\u00f3n retorna un array con todas las columnas que podemos recorrer con un foreach.<\/p>\n<h2>Insertar un registro con PDO<\/h2>\n<p>Podemos ejecutar la consultar para insertar elementos y obtener el identificador del registro con <strong>lastInsertId()<\/strong> tal y como sigue:<\/p>\n<div id=\"wpshdo_7\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_7\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_7\"><\/a><a id=\"wpshat_7\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_7\"  onClick=\"javascript:wpsh_toggleBlock(7)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_7\" onClick=\"javascript:wpsh_code(7)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_7\" onClick=\"javascript:wpsh_print(7)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_7\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'INSERT INTO product (name) VALUES (&quot;'<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>string<span class=\"br0\">&#41;<\/span><span class=\"re0\">$name<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;)'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"kw1\">echo<\/span> <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">lastInsertId<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<h2>Modificar un registro con PDO<\/h2>\n<p>De la misma forma podemos modificar un registro con <strong>PDO<\/strong>:<\/p>\n<div id=\"wpshdo_8\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_8\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_8\"><\/a><a id=\"wpshat_8\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_8\"  onClick=\"javascript:wpsh_toggleBlock(8)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_8\" onClick=\"javascript:wpsh_code(8)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_8\" onClick=\"javascript:wpsh_print(8)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_8\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'UPDATE product SET name = &quot;'<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>string<span class=\"br0\">&#41;<\/span><span class=\"re0\">$name<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<h2>Eliminar un registro con PDO<\/h2>\n<div id=\"wpshdo_9\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_9\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_9\"><\/a><a id=\"wpshat_9\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_9\"  onClick=\"javascript:wpsh_toggleBlock(9)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_9\" onClick=\"javascript:wpsh_code(9)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_9\" onClick=\"javascript:wpsh_print(9)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_9\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$sql<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'DELETE FROM product WHERE id_product = '<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$statement<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">connect<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$sql<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>            \n<span class=\"kw1\">return<\/span> <span class=\"re0\">$statement<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<h2>\u00bfPorqu\u00e9 usar <strong>PDO<\/strong> en vez de <strong>MySQLi<\/strong>?<\/h2>\n<p><strong>MySQLi<\/strong> es una extensi\u00f3n de <strong>PHP<\/strong> que fue creada en su momento para facilitar la comunicaci\u00f3n entre el c\u00f3digo <strong>PHP<\/strong> y un servidor <strong>MySQL<\/strong>.<\/p>\n<p><strong>MySQLi<\/strong> es la extensi\u00f3n heredera de <strong>MySQL<\/strong> que ya qued\u00f3 obsoleta hace varios a\u00f1os.<\/p>\n<p>Esta extensi\u00f3n mejor\u00f3 la extensi\u00f3n de <strong>MySQL<\/strong> agregando la ventaja de trabajar con la <strong>programaci\u00f3n orientada a objetos<\/strong>.<\/p>\n<p>La principal ventaja que tiene <strong>PDO<\/strong> sobre <strong>MySQLi<\/strong> es la habilidad de poder conectar con diferentes controladores de bases de datos.<\/p>\n<p>Es decir, con <strong>MySQLi<\/strong> solo puedes conectar a bases de datos que utilice <strong>MySQL<\/strong>.<\/p>\n<p>En cambio, con <strong>PDO<\/strong> tienes muchas m\u00e1s posibilidades que hacen que tu aplicaci\u00f3n sea mucho m\u00e1s escalable y poder ejecutarse en distintos entornos o dispositivos.<\/p>\n<p>Adem\u00e1s, si alg\u00fan d\u00eda decides migrar tu aplicaci\u00f3n a otro motor de base de datos diferentes, el cambio es trivial ya que tan solo tienes que cambiar un dato en la conexi\u00f3n.<\/p>\n<p>Por ejemplo, si inicialmente decidiste crear tu aplicaci\u00f3n usando el motor de base de datos \u00abmysql\u00bb, la conexi\u00f3n con la base de datos la hiciste de la siguiente manera:<\/p>\n<div id=\"wpshdo_10\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_10\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_10\"><\/a><a id=\"wpshat_10\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_10\"  onClick=\"javascript:wpsh_toggleBlock(10)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_10\" onClick=\"javascript:wpsh_code(10)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_10\" onClick=\"javascript:wpsh_print(10)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_10\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$link<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> PDO<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mysql:host=localhost;dbname=nombrebasededatos&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;root&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<p>Si lleg\u00f3 un d\u00eda que decidiste cambiar al motor de base de datos a \u00absqlite\u00bb. Tan solo tienes que hacer un m\u00ednimo cambio en tu aplicaci\u00f3n:<\/p>\n<div id=\"wpshdo_11\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_11\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_11\"><\/a><a id=\"wpshat_11\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_11\"  onClick=\"javascript:wpsh_toggleBlock(11)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_11\" onClick=\"javascript:wpsh_code(11)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_11\" onClick=\"javascript:wpsh_print(11)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_11\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"re0\">$link<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> PDO<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;sqlite:host=localhost;dbname=nombrebasededatos&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;root&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n<p>El resto de la aplicaci\u00f3n seguir\u00e1 funcionando como hasta ahora.<\/p>\n<p>Con <strong>MySQLi<\/strong> los cambios no son tran triviales y se requiere un esfuerzo superior para adaptar tu aplicaci\u00f3n al cambio.<\/p>\n<h2>Conclusiones<\/h2>\n<p>Con este art\u00edculo no quiero sugestionarte para que utilices <strong>PDO<\/strong> si o si.<\/p>\n<p>Tu debes decidir que es mejor para tu desarrollo y sobretodo usa lo que te haga sentir m\u00e1s feliz.<\/p>\n<p>En cualquier caso, debes preguntarte si es posible que alg\u00fan d\u00eda pueda darse el caso de que tu aplicaci\u00f3n cambiar\u00e1 de motor de base de datos.<\/p>\n<p>Si piensas que no, puedes usar cualquiera de las 2 pero si existe la duda, te recomiendo que uses <strong>PDO<\/strong> para que el d\u00eda que llegue el cambio sea r\u00e1pido y no pierdas m\u00e1s tiempo del deseado.<\/p>\n<p>\u00bfY tu que opinas? \u00bfQu\u00e9 extensi\u00f3n usas para conectar con la base de datos en tus aplicaciones?<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?<\/p>\n","protected":false},"author":1,"featured_media":7662,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,3],"tags":[],"class_list":["post-7660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mysql","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog<\/title>\n<meta name=\"description\" content=\"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-12T16:41:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-12T16:50:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/\",\"name\":\"Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png\",\"datePublished\":\"2022-01-12T16:41:20+00:00\",\"dateModified\":\"2022-01-12T16:50:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"description\":\"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png\",\"width\":250,\"height\":250,\"caption\":\"PHP Data Objects\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como trabajar con una base de datos utilizando PDO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog","description":"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog","og_description":"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?","og_url":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2022-01-12T16:41:20+00:00","article_modified_time":"2022-01-12T16:50:43+00:00","og_image":[{"width":250,"height":250,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/","url":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/","name":"Como trabajar con una base de datos utilizando PDO - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png","datePublished":"2022-01-12T16:41:20+00:00","dateModified":"2022-01-12T16:50:43+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"description":"Descubre como conectar, insertar, eliminar y obtener datos de una tabla de la base de datos utilizando PDO. \u00bfMySQLi o PDO? \u00bfCual usar?","breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2022\/01\/php-data-objects.png","width":250,"height":250,"caption":"PHP Data Objects"},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-trabajar-con-una-base-de-datos-utilizando-pdo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Como trabajar con una base de datos utilizando PDO"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/7660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=7660"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/7660\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/7662"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=7660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=7660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=7660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}