{"id":1138,"date":"2010-09-09T17:40:23","date_gmt":"2010-09-09T15:40:23","guid":{"rendered":"http:\/\/lloc.de\/?p=1138"},"modified":"2025-09-12T14:17:44","modified_gmt":"2025-09-12T12:17:44","slug":"wordpress-database-wpdb","status":"publish","type":"post","link":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/","title":{"rendered":"WordPress + Database = WPDB"},"content":{"rendered":"<p>Mi risulta facile immaginare\u00a0come sia possibile l&#8217;elevato numero di hack per WordPress che usano il database ma non <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wpdb_Class\">le funzionalit\u00e0 proprie del CMS<\/a>. Tuttavia, solo perch\u00e9 qualcosa apparentemente funziona non significa che sia giusto o che funzioni anche su altre installazioni.<!--more--><\/p>\n<p>Con un paio di martellate si pu\u00f2 adattare tutto anche allo sviluppo di software o di componenti per WordPress. Almeno questa \u00e8 l&#8217;impressione che ho quando vedo alcune strutture che in certi forum compaiono con la descrizione \u201cnon funziona\u201d. Gli errori si potrebbero per\u00f2 evitare sin dall&#8217;inizio \u2013 soprattutto lavorando con il database \u2013 se si usassero funzionalit\u00e0 testate.<\/p>\n<p>In WordPress esiste una classe che mette a disposizione tutto ci\u00f2 che \u00e8 necessario per usare un database. La classe <strong>WPDB<\/strong> non si dovrebbe per\u00f2 utilizzare direttamente perch\u00e9 esiste gi\u00e0 un&#8217;istanza a cui si pu\u00f2 ricorrere tramite la variabile globale $<strong>wpdb<\/strong>. E&#8217; importante sapere che con le funzionalit\u00e0 di questo oggetto non si possono soltanto inoltrare richieste alle tabelle di WordPress ma sono anche disponibili tutti i contenuti del database della configurazione.<\/p>\n<p>Oltre al metodo generico <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wpdb_Class#SELECT_Generic_Results\">get_results<\/a>, che \u00e8 da preferire alla funzione <em>mysql_query<\/em> di PHP, ci sono anche metodi per richieste diverse e altri per la manipolazione, la modifica, l&#8217;inserimento e la cancellazione dei dati. A questo proposito vorrei anche evidenziare i meccanismi di WordPress che offrono pi\u00f9 <a href=\"https:\/\/codex.wordpress.org\/Data_Validation#Database\">sicurezza contro SQL-Injections<\/a>.<\/p>\n<p>Per ragioni di sicurezza si consiglia spesso di <a href=\"https:\/\/robrota.com\/wordpress-in-sicurezza-cambiare-il-prefisso-delle-tabelle-del-database\">cambiare il prefisso delle tabelle di WordPress<\/a>. Sono completamente d&#8217;accordo tuttavia &#8211; per fare un esempio &#8211; una richiesta diretta alla tabella <em>wp_options<\/em> non funzionerebbe pi\u00f9. <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wpdb_Class#Tables\">WPDB per\u00f2 referenzia gi\u00e0 le tabelle<\/a> base dell&#8217;installazione, cos\u00ec \u00e8 possibile scrivere statement SQL in modo pi\u00f9 generico. Alla fine esiste anche la propriet\u00e0 <em>$wpdb-&gt;prefix<\/em> che conosce anche il prefisso usato.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi risulta facile immaginare\u00a0come sia possibile l&#8217;elevato numero di hack per WordPress che usano il database ma non le funzionalit\u00e0 proprie del CMS. Tuttavia, solo perch\u00e9 qualcosa apparentemente funziona non significa che sia giusto o che funzioni anche su altre installazioni.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[5],"tags":[9,31,33],"class_list":["post-1138","post","type-post","status-publish","format-aside","hentry","category-wordpress","tag-database","tag-wordpress-2","tag-wpdb","post_format-post-format-aside"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wordpress + Database = WPDB - realloc&#039;s asylum<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wordpress + Database = WPDB - realloc&#039;s asylum\" \/>\n<meta property=\"og:description\" content=\"Mi risulta facile immaginare\u00a0come sia possibile l&#8217;elevato numero di hack per WordPress che usano il database ma non le funzionalit\u00e0 proprie del CMS. Tuttavia, solo perch\u00e9 qualcosa apparentemente funziona non significa che sia giusto o che funzioni anche su altre installazioni.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/\" \/>\n<meta property=\"og:site_name\" content=\"realloc&#039;s asylum\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-09T15:40:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T12:17:44+00:00\" \/>\n<meta name=\"author\" content=\"realloc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"realloc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/\"},\"author\":{\"name\":\"realloc\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"headline\":\"WordPress + Database = WPDB\",\"datePublished\":\"2010-09-09T15:40:23+00:00\",\"dateModified\":\"2025-09-12T12:17:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/\"},\"wordCount\":297,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"keywords\":[\"database\",\"wordpress\",\"wpdb\"],\"articleSection\":[\"WordPress\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/\",\"name\":\"Wordpress + Database = WPDB - realloc&#039;s asylum\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#website\"},\"datePublished\":\"2010-09-09T15:40:23+00:00\",\"dateModified\":\"2025-09-12T12:17:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wordpress-database-wpdb\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ploetner.io\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress + Database = WPDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/\",\"name\":\"realloc's asylum\",\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ploetner.io\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\",\"name\":\"realloc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"contentUrl\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"width\":847,\"height\":848,\"caption\":\"realloc\"},\"logo\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\"},\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"sameAs\":[\"https:\\\/\\\/ploetner.io\\\/\"],\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/author\\\/realloc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wordpress + Database = WPDB - realloc&#039;s asylum","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/","og_locale":"it_IT","og_type":"article","og_title":"Wordpress + Database = WPDB - realloc&#039;s asylum","og_description":"Mi risulta facile immaginare\u00a0come sia possibile l&#8217;elevato numero di hack per WordPress che usano il database ma non le funzionalit\u00e0 proprie del CMS. Tuttavia, solo perch\u00e9 qualcosa apparentemente funziona non significa che sia giusto o che funzioni anche su altre installazioni.","og_url":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/","og_site_name":"realloc&#039;s asylum","article_published_time":"2010-09-09T15:40:23+00:00","article_modified_time":"2025-09-12T12:17:44+00:00","author":"realloc","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"realloc","Tempo di lettura stimato":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/#article","isPartOf":{"@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/"},"author":{"name":"realloc","@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"headline":"WordPress + Database = WPDB","datePublished":"2010-09-09T15:40:23+00:00","dateModified":"2025-09-12T12:17:44+00:00","mainEntityOfPage":{"@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/"},"wordCount":297,"commentCount":3,"publisher":{"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"keywords":["database","wordpress","wpdb"],"articleSection":["WordPress"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/","url":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/","name":"Wordpress + Database = WPDB - realloc&#039;s asylum","isPartOf":{"@id":"https:\/\/ploetner.io\/it\/#website"},"datePublished":"2010-09-09T15:40:23+00:00","dateModified":"2025-09-12T12:17:44+00:00","breadcrumb":{"@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ploetner.io\/it\/wordpress-database-wpdb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ploetner.io\/it\/"},{"@type":"ListItem","position":2,"name":"WordPress + Database = WPDB"}]},{"@type":"WebSite","@id":"https:\/\/ploetner.io\/it\/#website","url":"https:\/\/ploetner.io\/it\/","name":"realloc's asylum","description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","publisher":{"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ploetner.io\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":["Person","Organization"],"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8","name":"realloc","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","url":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","contentUrl":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","width":847,"height":848,"caption":"realloc"},"logo":{"@id":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg"},"description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","sameAs":["https:\/\/ploetner.io\/"],"url":"https:\/\/ploetner.io\/it\/author\/realloc\/"}]}},"_links":{"self":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/comments?post=1138"}],"version-history":[{"count":5,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1138\/revisions"}],"predecessor-version":[{"id":1595,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1138\/revisions\/1595"}],"wp:attachment":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/media?parent=1138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/categories?post=1138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/tags?post=1138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}