{"id":5374,"date":"2026-01-19T17:37:17","date_gmt":"2026-01-19T16:37:17","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5374"},"modified":"2026-01-19T17:37:18","modified_gmt":"2026-01-19T16:37:18","slug":"53-conexion-a-una-bbdd-mysql-con-php","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/53-conexion-a-una-bbdd-mysql-con-php\/","title":{"rendered":"53 Conexi\u00f3n a una BBDD MySQL con PHP"},"content":{"rendered":"\n<p>En este cap\u00edtulo vamos a ver como hacer una conexi\u00f3n a una base de datos. Poder hacer una conexi\u00f3n a la base de datos, lo primero que tenemos que tener es la base de datos. Vamos a\u00a0ingresar a PHPMyAdmin y crear una nueva base de datos a la que vamos a llamar <em>mvc<\/em>.<\/p>\n\n\n\n<p>Una vez tenemos creada nuestra base de datos, para poder hacer pruebas y poder conectarnos a una tabla&nbsp;vamos a crear una tabla para poder agregar contactos, a dicha tabla la vamos a llamar <em>contacts<\/em>. Los campos que vamos a crear son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>id<\/li>\n\n\n\n<li>name<\/li>\n\n\n\n<li>email<\/li>\n\n\n\n<li>phone<\/li>\n<\/ul>\n\n\n\n<p>Lo que nos interesa es conectarnos a la tabla de la base de datos pero desde PHP. Cuando explicamos que es el patr\u00f3n Modelo Vista Controlador especificamos que toda conexi\u00f3n con una base de datos deber\u00edamos hacerlo desde los Modelos, por lo tanto vamos a crear un modelo y desde ese modelo conectarnos a la tabla.<\/p>\n\n\n\n<p>Como nos queremos conectar a la tabla contacts, vamos a especificar un modelo denominado <em>Contact.php&nbsp;<\/em>dentro del cual vamos a crear una clase denominada Contact.<\/p>\n\n\n\n<p><em>Contact.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Models;\n\nuse mysqli;\n\nclass Contact {\n\n  protected $db_host = DB_HOST;\n  protected $db_user = DB_USER;\n  protected $db_pass = DB_PASS;\n  protected $db_name = DB_NAME;\n\n  protected $connection;\n\n  public function __construct(){\n    $this->connection();\n  }\n\n  \/\/ M\u00e9todo encargado de realizar la conexi\u00f3n\n  public function connection(){\n    \/\/ Conexi\u00f3n con mysqli\n    $this->connection =  new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name);\n\n    if($this->connection->connect_error)\n    {\n      die('Error de conexi\u00f3n: ' . $this->connection->connect_error);\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<p><em>HomeController.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Controllers;\n\nuse App\\Models\\Contact;\n\nclass HomeController extends Controller\n{\n  public function index()\n  {\n    $contactModel = new Contact();\n\n    \/\/ M\u00e9todo que se encarga de incluir toda la l\u00f3gica necesaria para mostrar contenido\n    return $this->view('home', &#91;\n      'title' => 'Home',\n      'description' => 'Esta es la p\u00e1gina Home'\n    ]);\n  }\n}<\/code><\/pre>\n\n\n\n<p>Por otro lado vamos a crear una nueva carpeta <em>conf<\/em> donde vamos a guardar todas las constantes de configuraci\u00f3n, como el acceso a la base de datos, y un archivo <em>database.php<\/em> que incluir\u00e1 la siguiente informaci\u00f3n.<\/p>\n\n\n\n<p><em>database.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndefine('DB_HOST', 'localhost');\ndefine('DB_USER', 'root');\ndefine('DB_PASS', '');\ndefine('DB_NAME', 'mvc');<\/code><\/pre>\n\n\n\n<p>Hasta aqu\u00ed el esquema de nuestra app es el siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>app<\/em>\n<ul class=\"wp-block-list\">\n<li><em>Controllers<\/em>\n<ul class=\"wp-block-list\">\n<li><em>Controller<\/em><\/li>\n\n\n\n<li><em>HomeController<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>Models<\/em>\n<ul class=\"wp-block-list\">\n<li><em>Contact<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>config<\/em>\n<ul class=\"wp-block-list\">\n<li><em>database.php<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>lib<\/em>\n<ul class=\"wp-block-list\">\n<li><em>Route.php<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>public<\/em>\n<ul class=\"wp-block-list\">\n<li><em>css<\/em><\/li>\n\n\n\n<li><em>img<\/em><\/li>\n\n\n\n<li><em>js<\/em><\/li>\n\n\n\n<li><em>.htaccess<\/em><\/li>\n\n\n\n<li><em>index.php<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>resources<\/em>\n<ul class=\"wp-block-list\">\n<li><em>css<\/em><\/li>\n\n\n\n<li><em>js<\/em><\/li>\n\n\n\n<li><em>views<\/em>\n<ul class=\"wp-block-list\">\n<li><em>home.php<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>routes<\/em>\n<ul class=\"wp-block-list\">\n<li><em>web.php<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em>.htaccess<\/em><\/li>\n\n\n\n<li><em>autoload.php<\/em><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo vamos a ver como hacer una conexi\u00f3n a una base de datos. Poder hacer una conexi\u00f3n a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":52,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5374","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En este cap\u00edtulo vamos a ver como hacer una conexi\u00f3n a una base de datos. Poder hacer una conexi\u00f3n a [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5374"}],"version-history":[{"count":4,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5374\/revisions"}],"predecessor-version":[{"id":5378,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5374\/revisions\/5378"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}