{"id":5392,"date":"2026-01-20T12:22:28","date_gmt":"2026-01-20T11:22:28","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5392"},"modified":"2026-01-20T12:22:30","modified_gmt":"2026-01-20T11:22:30","slug":"57-eliminar-registros-de-una-bbdd-mysql-con-php","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/57-eliminar-registros-de-una-bbdd-mysql-con-php\/","title":{"rendered":"57. Eliminar registros de una BBDD MySQL con PHP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo veremos como eliminar registros de nuestra base de datos, para ello dentro de nuestro archivo <em>Model.php<\/em> vamos a definir un nuevo m\u00e9todo al que le vamos a llamar <strong><em>delete()<\/em><\/strong>. Este m\u00e9todo lo que va a esperar recibir es un <strong><em>id <\/em><\/strong>para saber que registro ha de eliminar. Dejamos la sintaxis del archivo <em>Model.php<\/em> a continuaci\u00f3n.<\/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\n  public function delete($id){\n    \/\/ DELETE FROM contacts WHERE id = 1\n    $sql = \"DELETE FROM {$this->table} WHERE id = {$id}\";\n\n    \/\/ EJECUTAMOS LA CONSULTA\n    \/\/ NO ES NECESARIO NADA M\u00c1S, NO NECESITAMOS QUE RETORNE NADA\n    $this->query($sql);\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y modificamos el archivo <em>HomeController.ph<\/em>p<\/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    \/\/ ELIMINAMOS EL id 2\n    $contactModel->delete(2);\n    return \"Eliminado\";\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 class=\"wp-block-paragraph\">Una de las ventajas que tenemos al crear un modelo por cada tabla que queremos conectarnos es que, no s\u00f3lo vamos a definir la tabla a la cual queremos conectarnos, sino que debemos conectarnos a una tabla de una base de datos diferente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo veremos como eliminar registros de nuestra base de datos, para ello dentro de nuestro archivo Model.php vamos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":56,"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-5392","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 veremos como eliminar registros de nuestra base de datos, para ello dentro de nuestro archivo Model.php vamos [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5392","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=5392"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5392\/revisions"}],"predecessor-version":[{"id":5395,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5392\/revisions\/5395"}],"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=5392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}