{"id":5595,"date":"2026-02-12T20:44:52","date_gmt":"2026-02-13T01:44:52","guid":{"rendered":"https:\/\/chubes.net\/?documentation=class-wpdb"},"modified":"2026-03-13T03:28:17","modified_gmt":"2026-03-13T07:28:17","slug":"class-wpdb","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/database-wordpress-core\/class-wpdb\/","title":{"rendered":"class wpdb"},"content":{"rendered":"<p>WordPress database access abstraction class.<\/p><p><strong>Since:<\/strong> 0.71<br \/>\n<strong>Source:<\/strong> <code>wp-includes\/class-wpdb.php<\/code><\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Overview<\/h2><p>The <code>wpdb<\/code> class provides methods for interacting with the WordPress database. A global instance <code>$wpdb<\/code> is available throughout WordPress.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">global $wpdb;\n$results = $wpdb-&gt;get_results( &quot;SELECT * FROM {$wpdb-&gt;posts}&quot; );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Properties<\/h2><h3 class=\"wp-block-heading\">Table Name Properties (Per-Site)<\/h3><p>These properties contain the prefixed table names for per-site tables.<\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$posts<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Posts table<\/td><\/tr><tr><td><code>$postmeta<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Post metadata table<\/td><\/tr><tr><td><code>$comments<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Comments table<\/td><\/tr><tr><td><code>$commentmeta<\/code><\/td><td>string<\/td><td>2.9.0<\/td><td>Comment metadata table<\/td><\/tr><tr><td><code>$terms<\/code><\/td><td>string<\/td><td>2.3.0<\/td><td>Terms table<\/td><\/tr><tr><td><code>$term_taxonomy<\/code><\/td><td>string<\/td><td>2.3.0<\/td><td>Term taxonomy table<\/td><\/tr><tr><td><code>$term_relationships<\/code><\/td><td>string<\/td><td>2.3.0<\/td><td>Term relationships table<\/td><\/tr><tr><td><code>$termmeta<\/code><\/td><td>string<\/td><td>4.4.0<\/td><td>Term metadata table<\/td><\/tr><tr><td><code>$options<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Options table<\/td><\/tr><tr><td><code>$links<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Links table<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Table Name Properties (Global)<\/h3><p>Global tables shared across multisite.<\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$users<\/code><\/td><td>string<\/td><td>1.5.0<\/td><td>Users table<\/td><\/tr><tr><td><code>$usermeta<\/code><\/td><td>string<\/td><td>2.3.0<\/td><td>User metadata table<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Table Name Properties (Multisite Global)<\/h3><p>Multisite-only global tables.<\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$blogs<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Blogs table<\/td><\/tr><tr><td><code>$blogmeta<\/code><\/td><td>string|null<\/td><td>5.1.0<\/td><td>Blog metadata table<\/td><\/tr><tr><td><code>$site<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Sites table<\/td><\/tr><tr><td><code>$sitemeta<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Site metadata table<\/td><\/tr><tr><td><code>$signups<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Signups table<\/td><\/tr><tr><td><code>$registration_log<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Registration log table<\/td><\/tr><tr><td><code>$sitecategories<\/code><\/td><td>string|null<\/td><td>3.0.0<\/td><td>Sitewide terms table (deprecated)<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Table List Arrays<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$tables<\/code><\/td><td>string[]<\/td><td>2.5.0<\/td><td>List of per-site table names (unprefixed)<\/td><\/tr><tr><td><code>$global_tables<\/code><\/td><td>string[]<\/td><td>3.0.0<\/td><td>List of global table names<\/td><\/tr><tr><td><code>$ms_global_tables<\/code><\/td><td>string[]<\/td><td>3.0.0<\/td><td>List of multisite global table names<\/td><\/tr><tr><td><code>$old_tables<\/code><\/td><td>string[]<\/td><td>2.9.0<\/td><td>List of deprecated table names<\/td><\/tr><tr><td><code>$old_ms_global_tables<\/code><\/td><td>string[]<\/td><td>6.1.0<\/td><td>List of deprecated MS global table names<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Prefix Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$prefix<\/code><\/td><td>string<\/td><td>2.5.0<\/td><td>Current table prefix (includes blog ID in multisite)<\/td><\/tr><tr><td><code>$base_prefix<\/code><\/td><td>string<\/td><td>3.0.0<\/td><td>Base table prefix (without blog ID)<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Query State Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$last_query<\/code><\/td><td>string<\/td><td>0.71<\/td><td>The last SQL query executed<\/td><\/tr><tr><td><code>$last_result<\/code><\/td><td>stdClass[]|null<\/td><td>0.71<\/td><td>Results from the last query<\/td><\/tr><tr><td><code>$last_error<\/code><\/td><td>string<\/td><td>2.5.0<\/td><td>Error message from the last query<\/td><\/tr><tr><td><code>$num_queries<\/code><\/td><td>int<\/td><td>1.2.0<\/td><td>Total number of queries executed<\/td><\/tr><tr><td><code>$num_rows<\/code><\/td><td>int<\/td><td>0.71<\/td><td>Number of rows returned by last SELECT<\/td><\/tr><tr><td><code>$rows_affected<\/code><\/td><td>int<\/td><td>0.71<\/td><td>Number of rows affected by last query<\/td><\/tr><tr><td><code>$insert_id<\/code><\/td><td>int<\/td><td>0.71<\/td><td>AUTO_INCREMENT ID from last INSERT<\/td><\/tr><tr><td><code>$func_call<\/code><\/td><td>string<\/td><td>3.0.0<\/td><td>Description of last query call<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Query Logging<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$queries<\/code><\/td><td>array[]<\/td><td>1.5.0<\/td><td>Log of executed queries (when SAVEQUERIES enabled)<\/td><\/tr><\/tbody><\/table><\/figure><p>Each query log entry is an array: <code>[ SQL, time, caller, start_time, custom_data ]<\/code><\/p><h3 class=\"wp-block-heading\">Error Handling Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$show_errors<\/code><\/td><td>bool<\/td><td>0.71<\/td><td>Whether to display SQL errors<\/td><\/tr><tr><td><code>$suppress_errors<\/code><\/td><td>bool<\/td><td>2.5.0<\/td><td>Whether to suppress errors during bootstrap<\/td><\/tr><tr><td><code>$error<\/code><\/td><td>WP_Error|string<\/td><td>2.5.0<\/td><td>Last SQL error encountered<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Connection Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$ready<\/code><\/td><td>bool<\/td><td>2.3.2<\/td><td>Whether connection is ready for queries<\/td><\/tr><tr><td><code>$blogid<\/code><\/td><td>int<\/td><td>3.0.0<\/td><td>Current blog ID<\/td><\/tr><tr><td><code>$siteid<\/code><\/td><td>int<\/td><td>3.0.0<\/td><td>Current site\/network ID<\/td><\/tr><tr><td><code>$is_mysql<\/code><\/td><td>bool<\/td><td>3.3.0<\/td><td>Whether using MySQL<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Character Set Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$charset<\/code><\/td><td>string<\/td><td>2.2.0<\/td><td>Database character set<\/td><\/tr><tr><td><code>$collate<\/code><\/td><td>string<\/td><td>2.2.0<\/td><td>Database collation<\/td><\/tr><tr><td><code>$field_types<\/code><\/td><td>array<\/td><td>2.8.0<\/td><td>Format specifiers for known columns<\/td><\/tr><\/tbody><\/table><\/figure><h3 class=\"wp-block-heading\">Protected\/Private Properties<\/h3><figure class=\"wp-block-table\"><table><thead><tr><th>Property<\/th><th>Type<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$dbh<\/code><\/td><td>mysqli|false|null<\/td><td>0.71<\/td><td>Database connection handle<\/td><\/tr><tr><td><code>$dbuser<\/code><\/td><td>string<\/td><td>2.9.0<\/td><td>Database username<\/td><\/tr><tr><td><code>$dbpassword<\/code><\/td><td>string<\/td><td>3.1.0<\/td><td>Database password<\/td><\/tr><tr><td><code>$dbname<\/code><\/td><td>string<\/td><td>3.1.0<\/td><td>Database name<\/td><\/tr><tr><td><code>$dbhost<\/code><\/td><td>string<\/td><td>3.1.0<\/td><td>Database host<\/td><\/tr><tr><td><code>$result<\/code><\/td><td>mysqli_result|bool|null<\/td><td>0.71<\/td><td>Raw query result<\/td><\/tr><tr><td><code>$col_info<\/code><\/td><td>array<\/td><td>0.71<\/td><td>Column info from last query<\/td><\/tr><tr><td><code>$col_meta<\/code><\/td><td>array<\/td><td>4.2.0<\/td><td>Cached column metadata<\/td><\/tr><tr><td><code>$table_charset<\/code><\/td><td>string[]<\/td><td>4.2.0<\/td><td>Cached table charsets<\/td><\/tr><tr><td><code>$reconnect_retries<\/code><\/td><td>int<\/td><td>3.9.0<\/td><td>Connection retry attempts (default 5)<\/td><\/tr><tr><td><code>$incompatible_modes<\/code><\/td><td>string[]<\/td><td>3.9.0<\/td><td>SQL modes to disable<\/td><\/tr><tr><td><code>$time_start<\/code><\/td><td>float<\/td><td>1.5.0<\/td><td>Query timer start time<\/td><\/tr><\/tbody><\/table><\/figure><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Methods<\/h2><h3 class=\"wp-block-heading\">Constructor<\/h3><h4 class=\"wp-block-heading\">__construct()<\/h4><p>Creates a database connection.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function __construct( $dbuser, $dbpassword, $dbname, $dbhost )<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$dbuser<\/code><\/td><td>string<\/td><td>Database username<\/td><\/tr><tr><td><code>$dbpassword<\/code><\/td><td>string<\/td><td>Database password<\/td><\/tr><tr><td><code>$dbname<\/code><\/td><td>string<\/td><td>Database name<\/td><\/tr><tr><td><code>$dbhost<\/code><\/td><td>string<\/td><td>Database host<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Note:<\/strong> WordPress creates the global <code>$wpdb<\/code> instance automatically. Don&#8217;t instantiate manually unless creating a secondary connection.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Query Methods<\/h3><h4 class=\"wp-block-heading\">query()<\/h4><p>Executes a database query.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function query( $query ): int|bool<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string<\/td><td>SQL query to execute<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>int<\/code> &#8211; Number of rows affected\/selected<\/li><li><code>true<\/code> &#8211; For CREATE, ALTER, TRUNCATE, DROP<\/li><li><code>false<\/code> &#8211; On error<\/li><\/ul><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ SELECT - returns row count\n$count = $wpdb-&gt;query( &quot;SELECT * FROM {$wpdb-&gt;posts}&quot; );\n\n\/\/ UPDATE - returns affected rows\n$affected = $wpdb-&gt;query( \n    $wpdb-&gt;prepare( &quot;UPDATE {$wpdb-&gt;posts} SET post_status = %s WHERE ID = %d&quot;, &#039;draft&#039;, 123 )\n);\n\n\/\/ CREATE - returns true\n$result = $wpdb-&gt;query( &quot;CREATE TABLE my_table (id INT)&quot; );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_var()<\/h4><p>Retrieves a single value from the database.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_var( $query = null, $x = 0, $y = 0 ): string|null<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string|null<\/td><td>null<\/td><td>SQL query. Null uses previous result<\/td><\/tr><tr><td><code>$x<\/code><\/td><td>int<\/td><td>0<\/td><td>Column index<\/td><\/tr><tr><td><code>$y<\/code><\/td><td>int<\/td><td>0<\/td><td>Row index<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> String value or null on failure.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Count posts\n$count = $wpdb-&gt;get_var( &quot;SELECT COUNT(*) FROM {$wpdb-&gt;posts}&quot; );\n\n\/\/ Get specific value\n$title = $wpdb-&gt;get_var( \n    $wpdb-&gt;prepare( &quot;SELECT post_title FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;, 123 )\n);\n\n\/\/ Get from cached result (different column)\n$wpdb-&gt;query( &quot;SELECT post_title, post_date FROM {$wpdb-&gt;posts} LIMIT 1&quot; );\n$title = $wpdb-&gt;get_var( null, 0 ); \/\/ First column\n$date = $wpdb-&gt;get_var( null, 1 );  \/\/ Second column<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_row()<\/h4><p>Retrieves a single row from the database.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_row( $query = null, $output = OBJECT, $y = 0 ): array|object|null|void<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string|null<\/td><td>null<\/td><td>SQL query<\/td><\/tr><tr><td><code>$output<\/code><\/td><td>string<\/td><td>OBJECT<\/td><td>Output format: OBJECT, ARRAY_A, ARRAY_N<\/td><\/tr><tr><td><code>$y<\/code><\/td><td>int<\/td><td>0<\/td><td>Row to return (0-indexed)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Row data or null.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ As object\n$row = $wpdb-&gt;get_row( \n    $wpdb-&gt;prepare( &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;, 123 )\n);\necho $row-&gt;post_title;\n\n\/\/ As associative array\n$row = $wpdb-&gt;get_row( \n    $wpdb-&gt;prepare( &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;, 123 ),\n    ARRAY_A\n);\necho $row[&#039;post_title&#039;];\n\n\/\/ As numeric array\n$row = $wpdb-&gt;get_row( \n    $wpdb-&gt;prepare( &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;, 123 ),\n    ARRAY_N\n);\necho $row[0]; \/\/ First column<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_col()<\/h4><p>Retrieves one column from the database.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_col( $query = null, $x = 0 ): array<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string|null<\/td><td>null<\/td><td>SQL query<\/td><\/tr><tr><td><code>$x<\/code><\/td><td>int<\/td><td>0<\/td><td>Column to return (0-indexed)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Array of values from the specified column.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Get all post IDs\n$ids = $wpdb-&gt;get_col( &quot;SELECT ID FROM {$wpdb-&gt;posts} WHERE post_status = &#039;publish&#039;&quot; );\n\/\/ Returns: array( 1, 2, 3, 4, ... )\n\n\/\/ Get second column from cached result\n$wpdb-&gt;query( &quot;SELECT ID, post_title FROM {$wpdb-&gt;posts}&quot; );\n$titles = $wpdb-&gt;get_col( null, 1 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_results()<\/h4><p>Retrieves multiple rows from the database.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_results( $query = null, $output = OBJECT ): array|object|null<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string|null<\/td><td>null<\/td><td>SQL query<\/td><\/tr><tr><td><code>$output<\/code><\/td><td>string<\/td><td>OBJECT<\/td><td>Output format: OBJECT, OBJECT_K, ARRAY_A, ARRAY_N<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Array of results or null.<\/p><p><strong>Output Formats:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Constant<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>OBJECT<\/code><\/td><td>Array of row objects<\/td><\/tr><tr><td><code>OBJECT_K<\/code><\/td><td>Associative array keyed by first column value<\/td><\/tr><tr><td><code>ARRAY_A<\/code><\/td><td>Array of associative arrays<\/td><\/tr><tr><td><code>ARRAY_N<\/code><\/td><td>Array of numeric arrays<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Array of objects\n$posts = $wpdb-&gt;get_results( &quot;SELECT * FROM {$wpdb-&gt;posts} LIMIT 10&quot; );\nforeach ( $posts as $post ) {\n    echo $post-&gt;post_title;\n}\n\n\/\/ Keyed by ID\n$posts = $wpdb-&gt;get_results( \n    &quot;SELECT ID, post_title FROM {$wpdb-&gt;posts}&quot;, \n    OBJECT_K \n);\necho $posts[123]-&gt;post_title; \/\/ Access by ID\n\n\/\/ Array of associative arrays\n$posts = $wpdb-&gt;get_results( \n    &quot;SELECT * FROM {$wpdb-&gt;posts}&quot;, \n    ARRAY_A \n);\nforeach ( $posts as $post ) {\n    echo $post[&#039;post_title&#039;];\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Data Manipulation Methods<\/h3><h4 class=\"wp-block-heading\">insert()<\/h4><p>Inserts a row into a table.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function insert( $table, $data, $format = null ): int|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$table<\/code><\/td><td>string<\/td><td>Table name<\/td><\/tr><tr><td><code>$data<\/code><\/td><td>array<\/td><td>Column =&gt; value pairs<\/td><\/tr><tr><td><code>$format<\/code><\/td><td>string[]|string|null<\/td><td>Format for each value (%d, %f, %s)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Number of rows inserted (1) or false on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Basic insert\n$wpdb-&gt;insert(\n    $wpdb-&gt;postmeta,\n    array(\n        &#039;post_id&#039;    =&gt; 123,\n        &#039;meta_key&#039;   =&gt; &#039;_custom_key&#039;,\n        &#039;meta_value&#039; =&gt; &#039;custom_value&#039;,\n    )\n);\n$meta_id = $wpdb-&gt;insert_id;\n\n\/\/ With explicit formats\n$wpdb-&gt;insert(\n    $wpdb-&gt;posts,\n    array(\n        &#039;post_title&#039;   =&gt; &#039;Hello World&#039;,\n        &#039;post_content&#039; =&gt; &#039;Content here&#039;,\n        &#039;post_status&#039;  =&gt; &#039;publish&#039;,\n        &#039;post_author&#039;  =&gt; 1,\n    ),\n    array( &#039;%s&#039;, &#039;%s&#039;, &#039;%s&#039;, &#039;%d&#039; )\n);\n\n\/\/ NULL values\n$wpdb-&gt;insert(\n    $wpdb-&gt;posts,\n    array(\n        &#039;post_title&#039;  =&gt; &#039;Title&#039;,\n        &#039;post_parent&#039; =&gt; null, \/\/ Sets to NULL\n    )\n);<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">replace()<\/h4><p>Replaces a row or inserts if it doesn&#8217;t exist (based on PRIMARY KEY or UNIQUE index).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function replace( $table, $data, $format = null ): int|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$table<\/code><\/td><td>string<\/td><td>Table name<\/td><\/tr><tr><td><code>$data<\/code><\/td><td>array<\/td><td>Column =&gt; value pairs (must include key column)<\/td><\/tr><tr><td><code>$format<\/code><\/td><td>string[]|string|null<\/td><td>Format for each value<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Number of rows affected (1 for insert, 2 for replace) or false on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Replace existing or insert new\n$wpdb-&gt;replace(\n    $wpdb-&gt;options,\n    array(\n        &#039;option_name&#039;  =&gt; &#039;my_option&#039;,\n        &#039;option_value&#039; =&gt; &#039;new_value&#039;,\n        &#039;autoload&#039;     =&gt; &#039;yes&#039;,\n    ),\n    array( &#039;%s&#039;, &#039;%s&#039;, &#039;%s&#039; )\n);<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">update()<\/h4><p>Updates rows in a table.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function update( $table, $data, $where, $format = null, $where_format = null ): int|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$table<\/code><\/td><td>string<\/td><td>Table name<\/td><\/tr><tr><td><code>$data<\/code><\/td><td>array<\/td><td>Column =&gt; value pairs to update<\/td><\/tr><tr><td><code>$where<\/code><\/td><td>array<\/td><td>Column =&gt; value pairs for WHERE clause<\/td><\/tr><tr><td><code>$format<\/code><\/td><td>string[]|string|null<\/td><td>Format for $data values<\/td><\/tr><tr><td><code>$where_format<\/code><\/td><td>string[]|string|null<\/td><td>Format for $where values<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Number of rows updated or false on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Update post\n$wpdb-&gt;update(\n    $wpdb-&gt;posts,\n    array(\n        &#039;post_title&#039;  =&gt; &#039;New Title&#039;,\n        &#039;post_status&#039; =&gt; &#039;draft&#039;,\n    ),\n    array( &#039;ID&#039; =&gt; 123 ),\n    array( &#039;%s&#039;, &#039;%s&#039; ),\n    array( &#039;%d&#039; )\n);\n\n\/\/ Update with NULL in WHERE\n$wpdb-&gt;update(\n    $wpdb-&gt;posts,\n    array( &#039;post_status&#039; =&gt; &#039;trash&#039; ),\n    array( &#039;post_parent&#039; =&gt; null ) \/\/ WHERE post_parent IS NULL\n);<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">delete()<\/h4><p>Deletes rows from a table.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function delete( $table, $where, $where_format = null ): int|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$table<\/code><\/td><td>string<\/td><td>Table name<\/td><\/tr><tr><td><code>$where<\/code><\/td><td>array<\/td><td>Column =&gt; value pairs for WHERE clause<\/td><\/tr><tr><td><code>$where_format<\/code><\/td><td>string[]|string|null<\/td><td>Format for $where values<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Number of rows deleted or false on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Delete post meta\n$wpdb-&gt;delete(\n    $wpdb-&gt;postmeta,\n    array(\n        &#039;post_id&#039;  =&gt; 123,\n        &#039;meta_key&#039; =&gt; &#039;_custom_key&#039;,\n    ),\n    array( &#039;%d&#039;, &#039;%s&#039; )\n);\n\n\/\/ Delete by NULL\n$wpdb-&gt;delete(\n    $wpdb-&gt;posts,\n    array( &#039;post_author&#039; =&gt; null ) \/\/ WHERE post_author IS NULL\n);<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Prepared Statement Methods<\/h3><h4 class=\"wp-block-heading\">prepare()<\/h4><p>Prepares a SQL query for safe execution.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function prepare( $query, ...$args ): string|void<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$query<\/code><\/td><td>string<\/td><td>Query with placeholders<\/td><\/tr><tr><td><code>...$args<\/code><\/td><td>mixed<\/td><td>Values to substitute<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Placeholders:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Placeholder<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>%d<\/code><\/td><td>int<\/td><td>Integer<\/td><\/tr><tr><td><code>%f<\/code><\/td><td>float<\/td><td>Float<\/td><\/tr><tr><td><code>%s<\/code><\/td><td>string<\/td><td>String (auto-quoted)<\/td><\/tr><tr><td><code>%i<\/code><\/td><td>identifier<\/td><td>Table\/column name (since 6.2)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Sanitized query string.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Basic usage\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE ID = %d AND post_status = %s&quot;,\n    123,\n    &#039;publish&#039;\n);\n\n\/\/ Array of arguments\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;,\n    array( 123 )\n);\n\n\/\/ Identifier placeholder\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT * FROM %i WHERE %i = %s&quot;,\n    &#039;my_table&#039;,\n    &#039;my_column&#039;,\n    &#039;value&#039;\n);\n\n\/\/ Numbered placeholders\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE post_author = %1$d OR post_parent = %1$d&quot;,\n    $user_id\n);\n\n\/\/ Escaping literal %\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT DATE_FORMAT(post_date, &#039;%%Y-%%m-%%d&#039;) FROM {$wpdb-&gt;posts} WHERE ID = %d&quot;,\n    123\n);<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">esc_like()<\/h4><p>Escapes LIKE wildcards (%, _, ) before using in <code>prepare()<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function esc_like( $text ): string<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$text<\/code><\/td><td>string<\/td><td>Raw text to escape<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Escaped text safe for LIKE.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$search = &#039;%test_value%&#039;;\n$like = &#039;%&#039; . $wpdb-&gt;esc_like( $search ) . &#039;%&#039;;\n$sql = $wpdb-&gt;prepare(\n    &quot;SELECT * FROM {$wpdb-&gt;posts} WHERE post_title LIKE %s&quot;,\n    $like\n);\n\/\/ Result: WHERE post_title LIKE &#039;%%test_value%%&#039;<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Escaping Methods<\/h3><h4 class=\"wp-block-heading\">_real_escape()<\/h4><p>Escapes a string using mysqli_real_escape_string().<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function _real_escape( $data ): string<\/code><\/pre><\/div><p><strong>Note:<\/strong> Prefer <code>prepare()<\/code> over direct escaping.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">_escape()<\/h4><p>Escapes data (works on arrays).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function _escape( $data ): string|array<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">escape_by_ref()<\/h4><p>Escapes content by reference.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function escape_by_ref( &amp;$data ): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">quote_identifier()<\/h4><p>Quotes an identifier (table\/column name).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function quote_identifier( $identifier ): string<\/code><\/pre><\/div><p><strong>Since:<\/strong> 6.2.0<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$quoted = $wpdb-&gt;quote_identifier( &#039;table_name&#039; );\n\/\/ Returns: `table_name`\n\n$quoted = $wpdb-&gt;quote_identifier( &#039;col`name&#039; );\n\/\/ Returns: `col``name` (backtick escaped)<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Table &amp; Prefix Methods<\/h3><h4 class=\"wp-block-heading\">tables()<\/h4><p>Returns an array of WordPress table names.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function tables( $scope = &#039;all&#039;, $prefix = true, $blog_id = 0 ): string[]<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$scope<\/code><\/td><td>string<\/td><td>&#8216;all&#8217;<\/td><td>Table scope: &#8216;all&#8217;, &#8216;blog&#8217;, &#8216;global&#8217;, &#8216;ms_global&#8217;, &#8216;old&#8217;<\/td><\/tr><tr><td><code>$prefix<\/code><\/td><td>bool<\/td><td>true<\/td><td>Whether to include table prefix<\/td><\/tr><tr><td><code>$blog_id<\/code><\/td><td>int<\/td><td>0<\/td><td>Blog ID for prefix (multisite)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Array of table names.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ All tables with prefix\n$tables = $wpdb-&gt;tables();\n\/\/ array( &#039;posts&#039; =&gt; &#039;wp_posts&#039;, &#039;comments&#039; =&gt; &#039;wp_comments&#039;, ... )\n\n\/\/ Blog-specific tables only\n$tables = $wpdb-&gt;tables( &#039;blog&#039; );\n\n\/\/ Global tables only\n$tables = $wpdb-&gt;tables( &#039;global&#039; );\n\n\/\/ Without prefixes\n$tables = $wpdb-&gt;tables( &#039;all&#039;, false );\n\/\/ array( &#039;posts&#039;, &#039;comments&#039;, &#039;users&#039;, ... )<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">set_prefix()<\/h4><p>Sets the table prefix.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function set_prefix( $prefix, $set_table_names = true ): string|WP_Error<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$prefix<\/code><\/td><td>string<\/td><td>&#8211;<\/td><td>New prefix (alphanumeric + underscore)<\/td><\/tr><tr><td><code>$set_table_names<\/code><\/td><td>bool<\/td><td>true<\/td><td>Whether to update table name properties<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Old prefix or WP_Error on invalid prefix.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_blog_prefix()<\/h4><p>Gets the prefix for a specific blog.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_blog_prefix( $blog_id = null ): string<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$blog_id<\/code><\/td><td>int|null<\/td><td>null<\/td><td>Blog ID (null for current)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Blog table prefix.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$prefix = $wpdb-&gt;get_blog_prefix( 2 );\n\/\/ Returns: wp_2_ (for blog ID 2 in multisite)<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">set_blog_id()<\/h4><p>Sets the blog ID and updates table prefixes.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function set_blog_id( $blog_id, $network_id = 0 ): int<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Previous blog ID.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Connection Methods<\/h3><h4 class=\"wp-block-heading\">db_connect()<\/h4><p>Connects to the database server.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function db_connect( $allow_bail = true ): bool<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$allow_bail<\/code><\/td><td>bool<\/td><td>true<\/td><td>Whether to die on failure<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> True on success, false on failure.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">check_connection()<\/h4><p>Checks if connection is alive and reconnects if needed.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function check_connection( $allow_bail = true ): bool|void<\/code><\/pre><\/div><p><strong>Returns:<\/strong> True if connected.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">select()<\/h4><p>Selects a database.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function select( $db, $dbh = null ): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">close()<\/h4><p>Closes the database connection.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function close(): bool<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.5.0<\/p><p><strong>Returns:<\/strong> True on success, false on failure.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">parse_db_host()<\/h4><p>Parses the DB_HOST setting for mysqli_real_connect().<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function parse_db_host( $host ): array|false<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.9.0<\/p><p><strong>Returns:<\/strong> Array of <code>[ host, port, socket, is_ipv6 ]<\/code> or false.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Error Handling Methods<\/h3><h4 class=\"wp-block-heading\">show_errors()<\/h4><p>Enables showing database errors.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function show_errors( $show = true ): bool<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Previous show_errors state.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">hide_errors()<\/h4><p>Disables showing database errors.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function hide_errors(): bool<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Previous show_errors state.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">suppress_errors()<\/h4><p>Suppresses database errors.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function suppress_errors( $suppress = true ): bool<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Previous suppress_errors state.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">print_error()<\/h4><p>Prints\/logs a SQL error.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function print_error( $str = &#039;&#039; ): void|false<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">bail()<\/h4><p>Displays error and dies (if show_errors enabled).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function bail( $message, $error_code = &#039;500&#039; ): void|false<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Character Set Methods<\/h3><h4 class=\"wp-block-heading\">init_charset()<\/h4><p>Initializes charset and collate properties.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function init_charset(): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">determine_charset()<\/h4><p>Determines the best charset and collation.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function determine_charset( $charset, $collate ): array<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Array with &#8216;charset&#8217; and &#8216;collate&#8217; keys.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">set_charset()<\/h4><p>Sets the connection&#8217;s character set.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function set_charset( $dbh, $charset = null, $collate = null ): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_charset_collate()<\/h4><p>Gets the database charset collate for CREATE TABLE.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_charset_collate(): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> e.g., <code>&quot;DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci&quot;<\/code><\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$charset_collate = $wpdb-&gt;get_charset_collate();\n$sql = &quot;CREATE TABLE my_table (\n    id INT AUTO_INCREMENT,\n    name VARCHAR(255),\n    PRIMARY KEY (id)\n) $charset_collate&quot;;<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_table_charset()<\/h4><p>Gets the character set for a table.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">protected function get_table_charset( $table ): string|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_col_charset()<\/h4><p>Gets the character set for a column.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_col_charset( $table, $column ): string|false|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_col_length()<\/h4><p>Gets the maximum string length for a column.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_col_length( $table, $column ): array|false|WP_Error<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Array with &#8216;type&#8217; (&#8216;byte&#8217; or &#8216;char&#8217;) and &#8216;length&#8217;, or false.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">SQL Mode Methods<\/h3><h4 class=\"wp-block-heading\">set_sql_mode()<\/h4><p>Sets SQL mode for WordPress compatibility.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function set_sql_mode( $modes = array() ): void<\/code><\/pre><\/div><p>Removes incompatible modes: NO_ZERO_DATE, ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, STRICT_ALL_TABLES, TRADITIONAL, ANSI.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Capability Methods<\/h3><h4 class=\"wp-block-heading\">has_cap()<\/h4><p>Checks if the database supports a feature.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function has_cap( $db_cap ): bool<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Capability<\/th><th>Since<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>collation<\/code><\/td><td>2.5.0<\/td><td>Collation support<\/td><\/tr><tr><td><code>group_concat<\/code><\/td><td>2.7.0<\/td><td>GROUP_CONCAT function<\/td><\/tr><tr><td><code>subqueries<\/code><\/td><td>2.7.0<\/td><td>Subquery support<\/td><\/tr><tr><td><code>set_charset<\/code><\/td><td>2.7.0<\/td><td>SET NAMES support<\/td><\/tr><tr><td><code>utf8mb4<\/code><\/td><td>4.1.0<\/td><td>4-byte UTF-8 (always true since 6.6)<\/td><\/tr><tr><td><code>utf8mb4_520<\/code><\/td><td>4.6.0<\/td><td>utf8mb4_unicode_520_ci<\/td><\/tr><tr><td><code>identifier_placeholders<\/code><\/td><td>6.2.0<\/td><td>%i placeholder support<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">if ( $wpdb-&gt;has_cap( &#039;utf8mb4_520&#039; ) ) {\n    \/\/ Use better collation\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Column Info Methods<\/h3><h4 class=\"wp-block-heading\">get_col_info()<\/h4><p>Gets column metadata from the last query.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_col_info( $info_type = &#039;name&#039;, $col_offset = -1 ): mixed<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$info_type<\/code><\/td><td>string<\/td><td>&#8216;name&#8217;<\/td><td>Info type: name, table, def, max_length, not_null, etc.<\/td><\/tr><tr><td><code>$col_offset<\/code><\/td><td>int<\/td><td>-1<\/td><td>Column index (-1 for all columns)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$wpdb-&gt;query( &quot;SELECT * FROM {$wpdb-&gt;posts} LIMIT 1&quot; );\n\n\/\/ Get all column names\n$names = $wpdb-&gt;get_col_info( &#039;name&#039; );\n\n\/\/ Get specific column&#039;s max length\n$max_length = $wpdb-&gt;get_col_info( &#039;max_length&#039;, 0 );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Utility Methods<\/h3><h4 class=\"wp-block-heading\">flush()<\/h4><p>Clears cached query results.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function flush(): void<\/code><\/pre><\/div><p>Resets: last_result, col_info, last_query, rows_affected, num_rows, last_error, and frees mysqli_result.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">db_version()<\/h4><p>Gets the database server version.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function db_version(): string|null<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Version number (e.g., &quot;8.0.28&quot;).<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">db_server_info()<\/h4><p>Gets raw database server version string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function db_server_info(): string<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.5.0<\/p><p><strong>Returns:<\/strong> Full version string (e.g., &quot;8.0.28-0ubuntu0.20.04.3&quot;).<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">check_database_version()<\/h4><p>Checks if database meets minimum version requirement.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function check_database_version(): void|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">timer_start()<\/h4><p>Starts the query timer.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function timer_start(): true<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">timer_stop()<\/h4><p>Stops the query timer.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function timer_stop(): float<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Time spent in seconds.<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">get_caller()<\/h4><p>Gets comma-separated list of calling functions.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function get_caller(): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">log_query()<\/h4><p>Logs a query to the queries array.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function log_query( $query, $query_time, $query_callstack, $query_start, $query_data ): void<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.3.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Text Processing Methods<\/h3><h4 class=\"wp-block-heading\">strip_invalid_text_for_column()<\/h4><p>Strips invalid characters for a specific column.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function strip_invalid_text_for_column( $table, $column, $value ): string|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">check_ascii()<\/h4><p>Checks if a string is ASCII.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">protected function check_ascii( $input_string ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Placeholder Methods<\/h3><h4 class=\"wp-block-heading\">placeholder_escape()<\/h4><p>Generates a placeholder escape string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function placeholder_escape(): string<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.8.3<\/p><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">add_placeholder_escape()<\/h4><p>Escapes % characters in a query.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function add_placeholder_escape( $query ): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">remove_placeholder_escape()<\/h4><p>Removes placeholder escapes from a query.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function remove_placeholder_escape( $query ): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">Magic Methods<\/h3><h4 class=\"wp-block-heading\">__get()<\/h4><p>Makes private properties readable.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function __get( $name ): mixed<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">__set()<\/h4><p>Makes private properties settable.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function __set( $name, $value ): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">__isset()<\/h4><p>Checks if a private property is set.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function __isset( $name ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h4 class=\"wp-block-heading\">__unset()<\/h4><p>Unsets a private property.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function __unset( $name ): void<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Deprecated Methods<\/h2><h3 class=\"wp-block-heading\">supports_collation()<\/h3><p><strong>Deprecated:<\/strong> 3.5.0 &#8211; Use <code>has_cap( 'collation' )<\/code> instead.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function supports_collation(): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">escape()<\/h3><p><strong>Deprecated:<\/strong> 3.6.0 &#8211; Use <code>prepare()<\/code> or <code>esc_sql()<\/code> instead.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function escape( $data ): string|array<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">_weak_escape()<\/h3><p><strong>Deprecated:<\/strong> 3.6.0 &#8211; Use <code>prepare()<\/code> or <code>esc_sql()<\/code> instead.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function _weak_escape( $data ): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Constants<\/h2><p>These constants are defined in <code>class-wpdb.php<\/code>:<\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Constant<\/th><th>Value<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>EZSQL_VERSION<\/code><\/td><td>&#8216;WP1.25&#8217;<\/td><td>ezSQL version identifier<\/td><\/tr><tr><td><code>OBJECT<\/code><\/td><td>&#8216;OBJECT&#8217;<\/td><td>Return rows as objects<\/td><\/tr><tr><td><code>OBJECT_K<\/code><\/td><td>&#8216;OBJECT_K&#8217;<\/td><td>Return objects keyed by first column<\/td><\/tr><tr><td><code>ARRAY_A<\/code><\/td><td>&#8216;ARRAY_A&#8217;<\/td><td>Return rows as associative arrays<\/td><\/tr><tr><td><code>ARRAY_N<\/code><\/td><td>&#8216;ARRAY_N&#8217;<\/td><td>Return rows as numeric arrays<\/td><\/tr><\/tbody><\/table><\/figure>","protected":false},"excerpt":{"rendered":"<p>WordPress database access abstraction class. Since: 0.71 Source: wp-includes\/class-wpdb.php Overview The wpdb class provides methods for interacting with the WordPress database. A global instance $wpdb is available throughout WordPress. global&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[612],"project_type":[749],"class_list":["post-5595","documentation","type-documentation","status-publish","hentry","project-database-wordpress-core","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":18,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5595\/revisions"}],"predecessor-version":[{"id":10888,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5595\/revisions\/10888"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5595"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5595"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5595"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}