{"id":5388,"date":"2026-01-20T12:19:47","date_gmt":"2026-01-20T11:19:47","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5388"},"modified":"2026-01-20T12:19:48","modified_gmt":"2026-01-20T11:19:48","slug":"56-insertar-registros-en-una-bbdd-mysql-con-php","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/56-insertar-registros-en-una-bbdd-mysql-con-php\/","title":{"rendered":"56. Insertar registros en una BBDD MySQL con PHP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo crearemos un m\u00e9todo que nos permita poder agregar nuevos registros a nuestra base de datos, para ello nos dirigimos al modelo base y vamos a crear un nuevo m\u00e9todo que nos permita insertar registros. Para ello nos dirigimos al archivo&nbsp;<em>Models\/Model.php<\/em> como hemos ido haciendo hasta ahora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Models\/Model.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Models;\n\nuse mysqli;\n\nclass Model \n{\n  \/\/ Propiedades que recogen los datos de acceso a la BBDD\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  \/\/ Propiedad que recoge la conexi\u00f3n a la base de datos\n  protected $connection;\n\n  \/\/ Propiedad que recoge la consulta a la BBDD\n  protected $query;\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\n  \/\/ M\u00e9todo que hace la consulta a la base de datos\n  public function query($sql){\n    $this->query = $this->connection->query($sql);\n\n    return $this;\n  }\n\n  \/\/ M\u00e9todo que recupera el primer registro de la consulta a la base de datos\n  public function first(){\n    return $this->query->fetch_assoc();\n  }\n\n  \/\/ M\u00e9todo que recupera todos los registros de la consulta a la base de datos\n  public function get(){\n    return $this->query->fetch_all(MYSQLI_ASSOC);\n  }\n\n  \/\/ Consultas\n  \/\/ M\u00e9todo que nos devolver\u00e1 todos los registros de una determinada tabla\n  public function all(){\n    $sql = \"SELECT * FROM {$this->table}\";\n    return $this->query($sql)->get();\n  }\n  \n  \/\/ Recuperar determinado registro por su id\n  public function find($id){\n    \/\/ SELECT * FROM contacts WHERE id = 1\n    $sql = \"SELECT * FROM {$this->table} WHERE id = {$id}\";\n    return $this->query($sql)->first();\n  }\n  \n  \/\/ M\u00e9todo para filtrar registros\n  public function where($column, $operator, $value = null){\n    if($value == null){\n      $value = $operator;\n      $operator = '=';\n    }\n\n    \/\/ SELECT * FROM contacts WHERE name = 'Francisco'\n    $sql = \"SELECT * FROM {$this->table} WHERE {$column} {$operator} '{$value}'\";\n    $this->query($sql);\n\n    return $this;\n  }\n\n  \/\/ M\u00e9todo para agregar registros\n  public function create($data){\n    \/\/ INSERT INTO contacts (name, email, phone) VALUES ('Francisco', 'francisco@gmail.com', '987654321')\n    $columns = array_keys($data);\n    $columns = implode(', ', $columns);\n    \n    $values = array_values($data);\n    $values = \"'\" . implode(\"', '\", $values) . \"'\";\n\n    $sql = \"INSERT INTO {$this->table} ({$columns}) VALUES ({$values})\";\n    $this->query($sql);\n\n    $insert_id = $this->connection->insert_id;\n\n    return $this->find($insert_id);\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y tambi\u00e9n hemos modificado el archivo <em>Controllers\/HomeController.php<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Controllers\/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    \/\/ Le decimos al modelo que haga la siguiente consulta\n    return $contactModel->create(&#91;\n      'name' => 'Eva Paredes',\n      'email' => 'eva@gmail.com',\n      'phone' => '123456789'\n    ]);\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","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo crearemos un m\u00e9todo que nos permita poder agregar nuevos registros a nuestra base de datos, para ello [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":55,"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-5388","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 crearemos un m\u00e9todo que nos permita poder agregar nuevos registros a nuestra base de datos, para ello [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5388","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=5388"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5388\/revisions"}],"predecessor-version":[{"id":5391,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5388\/revisions\/5391"}],"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=5388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}