<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[13343] trunk/wp-includes/wp-db.php: More wpdb cleanups, docs.</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/13343">13343</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2010-02-23 22:04:29 +0000 (Tue, 23 Feb 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>More wpdb cleanups, docs. see <a href="http://trac.wordpress.org/ticket/11644">#11644</a> props hakre</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpincludeswpdbphp">trunk/wp-includes/wp-db.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpincludeswpdbphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/wp-db.php (13342 => 13343)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/wp-db.php        2010-02-23 20:48:50 UTC (rev 13342)
+++ trunk/wp-includes/wp-db.php        2010-02-23 22:04:29 UTC (rev 13343)
</span><span class="lines">@@ -93,6 +93,7 @@
</span><span class="cx">          * Count of rows returned by previous query
</span><span class="cx">          *
</span><span class="cx">          * @since 1.2
</span><ins>+         * @access private
</ins><span class="cx">          * @var int
</span><span class="cx">          */
</span><span class="cx">         var $num_rows = 0;
</span><span class="lines">@@ -101,6 +102,7 @@
</span><span class="cx">          * Count of affected rows by previous query
</span><span class="cx">          *
</span><span class="cx">          * @since 0.71
</span><ins>+         * @access private
</ins><span class="cx">          * @var int
</span><span class="cx">          */
</span><span class="cx">         var $rows_affected = 0;
</span><span class="lines">@@ -118,7 +120,8 @@
</span><span class="cx">          * Results of the last query made
</span><span class="cx">          *
</span><span class="cx">          * @since {@internal Version Unknown}}
</span><del>-         * @var mixed
</del><ins>+         * @access private
+         * @var array|null
</ins><span class="cx">          */
</span><span class="cx">         var $last_result;
</span><span class="cx"> 
</span><span class="lines">@@ -166,6 +169,7 @@
</span><span class="cx">          * {@internal Missing Description}}
</span><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><ins>+         * @access public
</ins><span class="cx">          * @var int
</span><span class="cx">          */
</span><span class="cx">         var $blogid = 0;
</span><span class="lines">@@ -174,29 +178,56 @@
</span><span class="cx">          * {@internal Missing Description}}
</span><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><ins>+         * @access public
</ins><span class="cx">          * @var int
</span><span class="cx">          */
</span><span class="cx">         var $siteid = 0;
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * WordPress Posts table
</del><ins>+         * List of WordPress per-blog tables
</ins><span class="cx">          *
</span><del>-         * @since 1.5.0
-         * @access public
-         * @var string
</del><ins>+         * @since {@internal Version Unknown}}
+         * @access private
+         * @see wpdb::tables()
+         * @var array
</ins><span class="cx">          */
</span><del>-        var $posts;
</del><ins>+        var $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta',
+                'terms', 'term_taxonomy', 'term_relationships', 'commentmeta' );
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * WordPress Users table
</del><ins>+         * List of deprecated WordPress tables
</ins><span class="cx">          *
</span><del>-         * @since 1.5.0
-         * @access public
-         * @var string
</del><ins>+         * categories, post2cat, and link2cat were deprecated in 2.3.0, db version 5539
+         *
+         * @since 2.9.0
+         * @access private
+         * @see wpdb::tables()
+         * @var array
</ins><span class="cx">          */
</span><del>-        var $users;
</del><ins>+        var $old_tables = array( 'categories', 'post2cat', 'link2cat' );
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><ins>+         * List of WordPress global tables
+         *
+         * @since 3.0.0
+         * @access private
+         * @see wpdb::tables()
+         * @var array
+         */
+        var $global_tables = array( 'users', 'usermeta' );
+
+        /**
+         * List of Multisite global tables
+         *
+         * @since 3.0.0
+         * @access private
+         * @see wpdb::tables()
+         * @var array
+         */
+        var $ms_global_tables = array( 'blogs', 'signups', 'site', 'sitemeta',
+                'sitecategories', 'registration_log', 'blog_versions' );
+
+        /**
</ins><span class="cx">          * WordPress Comments table
</span><span class="cx">          *
</span><span class="cx">          * @since 1.5.0
</span><span class="lines">@@ -206,6 +237,15 @@
</span><span class="cx">         var $comments;
</span><span class="cx"> 
</span><span class="cx">         /**
</span><ins>+         * WordPress Comment Metadata table
+         *
+         * @since 2.9.0
+         * @access public
+         * @var string
+         */
+        var $commentmeta;
+
+        /**
</ins><span class="cx">          * WordPress Links table
</span><span class="cx">          *
</span><span class="cx">          * @since 1.5.0
</span><span class="lines">@@ -233,31 +273,31 @@
</span><span class="cx">         var $postmeta;
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * WordPress Comment Metadata table
</del><ins>+         * WordPress Posts table
</ins><span class="cx">          *
</span><del>-         * @since 2.9
</del><ins>+         * @since 1.5.0
</ins><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $commentmeta;
</del><ins>+        var $posts;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * WordPress User Metadata table
</del><ins>+         * WordPress Terms table
</ins><span class="cx">          *
</span><span class="cx">          * @since 2.3.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $usermeta;
</del><ins>+        var $terms;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * WordPress Terms table
</del><ins>+         * WordPress Term Relationships table
</ins><span class="cx">          *
</span><span class="cx">          * @since 2.3.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $terms;
</del><ins>+        var $term_relationships;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><span class="cx">          * WordPress Term Taxonomy table
</span><span class="lines">@@ -268,38 +308,29 @@
</span><span class="cx">          */
</span><span class="cx">         var $term_taxonomy;
</span><span class="cx"> 
</span><ins>+        /*
+         * Global and Multisite tables
+         */
+
</ins><span class="cx">         /**
</span><del>-         * WordPress Term Relationships table
</del><ins>+         * WordPress User Metadata table
</ins><span class="cx">          *
</span><span class="cx">          * @since 2.3.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $term_relationships;
</del><ins>+        var $usermeta;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * List of WordPress per-blog tables
</del><ins>+         * WordPress Users table
</ins><span class="cx">          *
</span><del>-         * @since {@internal Version Unknown}}
-         * @access private
-         * @see wpdb::tables()
-         * @var array
</del><ins>+         * @since 1.5.0
+         * @access public
+         * @var string
</ins><span class="cx">          */
</span><del>-        var $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta',
-                'terms', 'term_taxonomy', 'term_relationships', 'commentmeta' );
</del><ins>+        var $users;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * List of deprecated WordPress tables
-         *
-         * @deprecated
-         * @since 2.9.0
-         * @access private
-         * @see wpdb::tables()
-         * @var array
-         */
-        var $old_tables = array( 'categories', 'post2cat', 'link2cat' );
-
-        /**
</del><span class="cx">          * Multisite Blogs table
</span><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="lines">@@ -309,81 +340,60 @@
</span><span class="cx">         var $blogs;
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Signups table
</del><ins>+         * Multisite Blog Versions table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $signups;
</del><ins>+        var $blog_versions;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Sites table
</del><ins>+         * Multisite Registration Log table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $site;
</del><ins>+        var $registration_log;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Site Metadata table
</del><ins>+         * Multisite Signups table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $sitemeta;
</del><ins>+        var $signups;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Sitewide Terms table
</del><ins>+         * Multisite Sites table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $sitecategories;
</del><ins>+        var $site;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Registration Log table
</del><ins>+         * Multisite Sitewide Terms table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $registration_log;
</del><ins>+        var $sitecategories;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Multisite Blog Versions table
</del><ins>+         * Multisite Site Metadata table
</ins><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><span class="cx">          * @var string
</span><span class="cx">          */
</span><del>-        var $blog_versions;
</del><ins>+        var $sitemeta;
</ins><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * List of WordPress global tables
-         *
-         * @since 3.0.0
-         * @access private
-         * @see wpdb::tables()
-         * @var array
-         */
-        var $global_tables = array( 'users', 'usermeta' );
-
-        /**
-         * List of Multisite global tables
-         *
-         * @since 3.0.0
-         * @access private
-         * @see wpdb::tables()
-         * @var array
-         */
-        var $ms_global_tables = array( 'blogs', 'signups', 'site', 'sitemeta',
-                'sitecategories', 'registration_log', 'blog_versions' );
-
-        /**
</del><span class="cx">          * Format specifiers for DB columns. Columns not listed here default to %s. Initialized during WP load.
</span><span class="cx">          *
</span><span class="cx">          * Keys are column names, values are format types: 'ID' =&gt; '%d'
</span><span class="lines">@@ -547,7 +557,9 @@
</span><span class="cx"> 
</span><span class="cx">                 if ( isset( $this-&gt;base_prefix ) )
</span><span class="cx">                         $old_prefix = $this-&gt;base_prefix;
</span><ins>+
</ins><span class="cx">                 $this-&gt;base_prefix = $prefix;
</span><ins>+
</ins><span class="cx">                 foreach ( $this-&gt;tables( 'global' ) as $table =&gt; $prefixed_table )
</span><span class="cx">                         $this-&gt;$table = $prefixed_table;
</span><span class="cx"> 
</span><span class="lines">@@ -570,11 +582,11 @@
</span><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><span class="cx">          * @access public
</span><del>-         * @param string $blog_id
-         * @param string $site_id. Optional.
</del><ins>+         * @param int $blog_id
+         * @param int $site_id Optional.
</ins><span class="cx">          * @return string previous blog id
</span><span class="cx">          */
</span><del>-        function set_blog_id( $blog_id, $site_id = '' ) {
</del><ins>+        function set_blog_id( $blog_id, $site_id = 0 ) {
</ins><span class="cx">                 if ( ! empty( $site_id ) )
</span><span class="cx">                         $this-&gt;siteid = $site_id;
</span><span class="cx"> 
</span><span class="lines">@@ -597,12 +609,12 @@
</span><span class="cx">          *
</span><span class="cx">          * @uses is_multisite()
</span><span class="cx">          * @since 3.0.0
</span><del>-         * @param int $blog_id. Optional.
</del><ins>+         * @param int $blog_id Optional.
</ins><span class="cx">          * @return string Blog prefix.
</span><span class="cx">          */
</span><span class="cx">         function get_blog_prefix( $blog_id = 0 ) {
</span><span class="cx">                 if ( is_multisite() &amp;&amp; $blog_id ) {
</span><del>-                        if ( defined('MULTISITE') &amp;&amp; ( $blog_id == 0 || $blog_id == 1 ) )
</del><ins>+                        if ( defined( 'MULTISITE' ) &amp;&amp; ( 0 == $blog_id || 1 == $blog_id ) )
</ins><span class="cx">                                 return $this-&gt;base_prefix;
</span><span class="cx">                         else
</span><span class="cx">                                 return $this-&gt;base_prefix . $blog_id . '_';
</span><span class="lines">@@ -619,16 +631,20 @@
</span><span class="cx">          * be determined by the prefix.
</span><span class="cx">          *
</span><span class="cx">          * @since 3.0.0
</span><del>-         * @uses wpdb::tables
-         * @uses wpdb::old_tables
-         * @uses wpdb::global_tables
-         * @uses wpdb::ms_global_tables
</del><ins>+         * @uses wpdb::$tables
+         * @uses wpdb::$old_tables
+         * @uses wpdb::$global_tables
+         * @uses wpdb::$ms_global_tables
</ins><span class="cx">          * @uses is_multisite()
</span><span class="cx">          *
</span><del>-         * @param string $scope Can be all, global, ms_global, blog, or old tables. Default all.
-         *         All returns the blog tables for the queried blog and all global tables.
</del><ins>+         * @param string $scope Can be all, global, ms_global, blog, or old tables. Defaults to all.
+         *         'all' returns 'all' and 'global' tables. No old tables are returned.
+         *         'global' returns the global tables for the installation, returning multisite tables only if running multisite.
+         *         'ms_global' returns the multisite global tables, regardless if current installation is multisite.
+         *         'blog' returns the blog-level tables for the queried blog.
+         *         'old' returns tables which are deprecated.
</ins><span class="cx">          * @param bool $prefix Whether to include table prefixes. Default true. If blog
</span><del>-         *        prefix is requested, then the custom users and usermeta tables will be mapped.
</del><ins>+         *         prefix is requested, then the custom users and usermeta tables will be mapped.
</ins><span class="cx">          * @param int $blog_id The blog_id to prefix. Defaults to wpdb::blogid. Used only when prefix is requested.
</span><span class="cx">          * @return array Table names. When a prefix is requested, the key is the unprefixed table name.
</span><span class="cx">          */
</span><span class="lines">@@ -658,14 +674,14 @@
</span><span class="cx">                 if ( $prefix ) {
</span><span class="cx">                         if ( ! $blog_id )
</span><span class="cx">                                 $blog_id = $this-&gt;blogid;
</span><del>-                        $prefix = $this-&gt;get_blog_prefix( $blog_id );
</del><ins>+                        $blog_prefix = $this-&gt;get_blog_prefix( $blog_id );
</ins><span class="cx">                         $base_prefix = $this-&gt;base_prefix;
</span><span class="cx">                         $global_tables = array_merge( $this-&gt;global_tables, $this-&gt;ms_global_tables );
</span><span class="cx">                         foreach ( $tables as $k =&gt; $table ) {
</span><span class="cx">                                 if ( in_array( $table, $global_tables ) )
</span><span class="cx">                                         $tables[ $table ] = $base_prefix . $table;
</span><span class="cx">                                 else
</span><del>-                                        $tables[ $table ] = $prefix . $table;
</del><ins>+                                        $tables[ $table ] = $blog_prefix . $table;
</ins><span class="cx">                                 unset( $tables[ $k ] );
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="lines">@@ -709,8 +725,8 @@
</span><span class="cx">         /**
</span><span class="cx">          * Weak escape
</span><span class="cx">          *
</span><del>-         * @see addslashes()
-         * @since  unknown
</del><ins>+         * @uses addslashes()
+         * @since {@internal Version Unknown}}
</ins><span class="cx">          * @access private
</span><span class="cx">          *
</span><span class="cx">          * @param  string $string
</span><span class="lines">@@ -723,8 +739,8 @@
</span><span class="cx">         /**
</span><span class="cx">          * Real escape
</span><span class="cx">          *
</span><del>-         * @see mysql_real_escape_string()
-         * @see addslashes()
</del><ins>+         * @uses mysql_real_escape_string()
+         * @uses addslashes()
</ins><span class="cx">          * @since 2.8
</span><span class="cx">          * @access private
</span><span class="cx">          *
</span><span class="lines">@@ -739,9 +755,10 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Escape data.
</del><ins>+         * Escape data. Works on arrays.
</ins><span class="cx">          *
</span><del>-         * @see esc_sql()
</del><ins>+     * @uses wpdb::_escape()
+     * @uses wpdb::_real_escape()
</ins><span class="cx">          * @since  2.8
</span><span class="cx">          * @access private
</span><span class="cx">          *
</span><span class="lines">@@ -764,10 +781,11 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * Escapes content for insertion into the database using addslashes(), for security
</del><ins>+         * Escapes content for insertion into the database using addslashes(), for security.
</ins><span class="cx">          *
</span><ins>+         * Works on arrays.
+         *
</ins><span class="cx">          * @since 0.71
</span><del>-         *
</del><span class="cx">          * @param  string|array $data to escape
</span><span class="cx">          * @return string|array escaped as query safe string
</span><span class="cx">          */
</span><span class="lines">@@ -789,8 +807,8 @@
</span><span class="cx">         /**
</span><span class="cx">          * Escapes content by reference for insertion into the database, for security
</span><span class="cx">          *
</span><ins>+         * @uses wpdb::_real_escape()
</ins><span class="cx">          * @since 2.3.0
</span><del>-         *
</del><span class="cx">          * @param  string $string to escape
</span><span class="cx">          * @return void
</span><span class="cx">          */
</span><span class="lines">@@ -819,7 +837,8 @@
</span><span class="cx">          * Both %d and %s should be left unquoted in the query string.
</span><span class="cx">          *
</span><span class="cx">          * &lt;code&gt;
</span><del>-         * wpdb::prepare( &quot;SELECT * FROM `table` WHERE `column` = %s AND `field` = %d&quot;, &quot;foo&quot;, 1337 )
</del><ins>+         * wpdb::prepare( &quot;SELECT * FROM `table` WHERE `column` = %s AND `field` = %d&quot;, 'foo', 1337 )
+         * wpdb::prepare( &quot;SELECT DATE_FORMAT(`field`, '%%c') FROM `table` WHERE `column` = %s&quot;, 'foo' );
</ins><span class="cx">          * &lt;/code&gt;
</span><span class="cx">          *
</span><span class="cx">          * @link http://php.net/sprintf Description of syntax.
</span><span class="lines">@@ -837,6 +856,7 @@
</span><span class="cx">         function prepare( $query = null ) { // ( $query, *$args )
</span><span class="cx">                 if ( is_null( $query ) )
</span><span class="cx">                         return;
</span><ins>+
</ins><span class="cx">                 $args = func_get_args();
</span><span class="cx">                 array_shift( $args );
</span><span class="cx">                 // If args were passed as an array (as in vsprintf), move them up
</span><span class="lines">@@ -873,19 +893,11 @@
</span><span class="cx">                 else
</span><span class="cx">                         $error_str = sprintf(/*WP_I18N_DB_QUERY_ERROR*/'WordPress database error %1$s for query %2$s'/*/WP_I18N_DB_QUERY_ERROR*/, $str, $this-&gt;last_query);
</span><span class="cx"> 
</span><del>-                $log_error = true;
-                if ( ! function_exists('error_log') )
-                        $log_error = false;
</del><ins>+                if ( function_exists('error_log') &amp;&amp; $log_file = @ini_get('error_log') &amp;&amp; ( 'syslog' == $log_file || is_writable( $log_file ) ) )
+                        @error_log( $error_str, 0 );
</ins><span class="cx"> 
</span><del>-                $log_file = @ini_get('error_log');
-                if ( !empty($log_file) &amp;&amp; ('syslog' != $log_file) &amp;&amp; !@is_writable($log_file) )
-                        $log_error = false;
-
-                if ( $log_error )
-                        @error_log($error_str, 0);
-
</del><span class="cx">                 // Is error output turned on or not..
</span><del>-                if ( !$this-&gt;show_errors )
</del><ins>+                if ( ! $this-&gt;show_errors )
</ins><span class="cx">                         return false;
</span><span class="cx"> 
</span><span class="cx">                 // If there is an error then take note of it
</span><span class="lines">@@ -894,7 +906,7 @@
</span><span class="cx">                         if ( defined( 'ERRORLOGFILE' ) )
</span><span class="cx">                                 error_log( $msg, 3, ERRORLOGFILE );
</span><span class="cx">                         if ( defined( 'DIEONDBERROR' ) )
</span><del>-                                die( $msg );
</del><ins>+                                wp_die( $msg );
</ins><span class="cx">                 } else {
</span><span class="cx">                         $str   = htmlspecialchars( $str, ENT_QUOTES );
</span><span class="cx">                         $query = htmlspecialchars( $this-&gt;last_query, ENT_QUOTES );
</span><span class="lines">@@ -1021,12 +1033,10 @@
</span><span class="cx">                 if ( ! $this-&gt;ready )
</span><span class="cx">                         return false;
</span><span class="cx"> 
</span><del>-                // filter the query, if filters are available
-                // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
</del><ins>+                // some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
</ins><span class="cx">                 if ( function_exists( 'apply_filters' ) )
</span><span class="cx">                         $query = apply_filters( 'query', $query );
</span><span class="cx"> 
</span><del>-                // initialize return
</del><span class="cx">                 $return_val = 0;
</span><span class="cx">                 $this-&gt;flush();
</span><span class="cx"> 
</span><span class="lines">@@ -1065,9 +1075,9 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 $this-&gt;result = @mysql_query( $query, $dbh );
</span><del>-                ++$this-&gt;num_queries;
</del><ins>+                $this-&gt;num_queries++;
</ins><span class="cx"> 
</span><del>-                if ( defined('SAVEQUERIES') &amp;&amp; SAVEQUERIES )
</del><ins>+                if ( defined( 'SAVEQUERIES' ) &amp;&amp; SAVEQUERIES )
</ins><span class="cx">                         $this-&gt;queries[] = array( $query, $this-&gt;timer_stop(), $this-&gt;get_caller() );
</span><span class="cx"> 
</span><span class="cx">                 // If there is an error then take note of it..
</span><span class="lines">@@ -1111,15 +1121,19 @@
</span><span class="cx">          * Insert a row into a table.
</span><span class="cx">          *
</span><span class="cx">          * &lt;code&gt;
</span><ins>+         * wpdb::insert( 'table', array( 'column' =&gt; 'foo', 'field' =&gt; 'bar' ) )
</ins><span class="cx">          * wpdb::insert( 'table', array( 'column' =&gt; 'foo', 'field' =&gt; 1337 ), array( '%s', '%d' ) )
</span><span class="cx">          * &lt;/code&gt;
</span><span class="cx">          *
</span><span class="cx">          * @since 2.5.0
</span><span class="cx">          * @see wpdb::prepare()
</span><ins>+         * @see wpdb::$field_types
+         * @see wp_set_wpdb_vars()
</ins><span class="cx">          *
</span><span class="cx">          * @param string $table table name
</span><span class="cx">          * @param array $data Data to insert (in column =&gt; value pairs).  Both $data columns and $data values should be &quot;raw&quot; (neither should be SQL escaped).
</span><del>-         * @param array|string $format (optional) An array of formats to be mapped to each of the value in $data.  If string, that format will be used for all of the values in $data.  A format is one of '%d', '%s' (decimal number, string).  If omitted, all values in $data will be treated as strings.
</del><ins>+         * @param array|string $format Optional. An array of formats to be mapped to each of the value in $data. If string, that format will be used for all of the values in $data.
+         *         A format is one of '%d', '%s' (decimal number, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
</ins><span class="cx">          * @return int|false The number of rows inserted, or false on error.
</span><span class="cx">          */
</span><span class="cx">         function insert( $table, $data, $format = null ) {
</span><span class="lines">@@ -1144,21 +1158,25 @@
</span><span class="cx">          * Update a row in the table
</span><span class="cx">          *
</span><span class="cx">          * &lt;code&gt;
</span><ins>+         * wpdb::update( 'table', array( 'column' =&gt; 'foo', 'field' =&gt; 'bar' ), array( 'ID' =&gt; 1 ) )
</ins><span class="cx">          * wpdb::update( 'table', array( 'column' =&gt; 'foo', 'field' =&gt; 1337 ), array( 'ID' =&gt; 1 ), array( '%s', '%d' ), array( '%d' ) )
</span><span class="cx">          * &lt;/code&gt;
</span><span class="cx">          *
</span><span class="cx">          * @since 2.5.0
</span><span class="cx">          * @see wpdb::prepare()
</span><ins>+         * @see wpdb::$field_types
+         * @see wp_set_wpdb_vars()
</ins><span class="cx">          *
</span><span class="cx">          * @param string $table table name
</span><del>-         * @param array $data Data to update (in column =&gt; value pairs).  Both $data columns and $data values should be &quot;raw&quot; (neither should be SQL escaped).
-         * @param array $where A named array of WHERE clauses (in column =&gt; value pairs).  Multiple clauses will be joined with ANDs.  Both $where columns and $where values should be &quot;raw&quot;.
-         * @param array|string $format (optional) An array of formats to be mapped to each of the values in $data.  If string, that format will be used for all of the values in $data.  A format is one of '%d', '%s' (decimal number, string).  If omitted, all values in $data will be treated as strings.
-         * @param array|string $format_where (optional) An array of formats to be mapped to each of the values in $where.  If string, that format will be used for all of  the items in $where.  A format is one of '%d', '%s' (decimal number, string).  If omitted, all values in $where will be treated as strings.
</del><ins>+         * @param array $data Data to update (in column =&gt; value pairs). Both $data columns and $data values should be &quot;raw&quot; (neither should be SQL escaped).
+         * @param array $where A named array of WHERE clauses (in column =&gt; value pairs). Multiple clauses will be joined with ANDs. Both $where columns and $where values should be &quot;raw&quot;.
+         * @param array|string $format Optional. An array of formats to be mapped to each of the values in $data. If string, that format will be used for all of the values in $data.
+         *         A format is one of '%d', '%s' (decimal number, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
+         * @param array|string $format_where Optional. An array of formats to be mapped to each of the values in $where. If string, that format will be used for all of the items in $where.  A format is one of '%d', '%s' (decimal number, string).  If omitted, all values in $where will be treated as strings.
</ins><span class="cx">          * @return int|false The number of rows updated, or false on error.
</span><span class="cx">          */
</span><span class="cx">         function update( $table, $data, $where, $format = null, $where_format = null ) {
</span><del>-                if ( ! is_array( $where ) )
</del><ins>+                if ( ! is_array( $data ) || ! is_array( $where ) )
</ins><span class="cx">                         return false;
</span><span class="cx"> 
</span><span class="cx">                 $formats = $format = (array) $format;
</span><span class="lines">@@ -1197,10 +1215,10 @@
</span><span class="cx">          *
</span><span class="cx">          * @since 0.71
</span><span class="cx">          *
</span><del>-         * @param string|null $query Optional. SQL query. If null (default), uses the result from the previous query.
-         * @param int $x (optional) Column of value to return.  Indexed from 0.
-         * @param int $y (optional) Row of value to return.  Indexed from 0.
-         * @return string|null Database query result, or null on failure
</del><ins>+         * @param string|null $query Optional. SQL query. Defaults to null, use the result from the previous query.
+         * @param int $x Optional. Column of value to return.  Indexed from 0.
+         * @param int $y Optional. Row of value to return.  Indexed from 0.
+         * @return string|null Database query result (as string), or null on failure
</ins><span class="cx">          */
</span><span class="cx">         function get_var( $query = null, $x = 0, $y = 0 ) {
</span><span class="cx">                 $this-&gt;func_call = &quot;\$db-&gt;get_var(\&quot;$query\&quot;, $x, $y)&quot;;
</span><span class="lines">@@ -1224,8 +1242,9 @@
</span><span class="cx">          * @since 0.71
</span><span class="cx">          *
</span><span class="cx">          * @param string|null $query SQL query.
</span><del>-         * @param string $output (optional) one of ARRAY_A | ARRAY_N | OBJECT constants.  Return an associative array (column =&gt; value, ...), a numerically indexed array (0 =&gt; value, ...) or an object ( -&gt;column = value ), respectively.
-         * @param int $y (optional) Row to return.  Indexed from 0.
</del><ins>+         * @param string $output Optional. one of ARRAY_A | ARRAY_N | OBJECT constants. Return an associative array (column =&gt; value, ...),
+         *         a numerically indexed array (0 =&gt; value, ...) or an object ( -&gt;column = value ), respectively.
+         * @param int $y Optional. Row to return. Indexed from 0.
</ins><span class="cx">          * @return mixed Database query result in format specifed by $output or null on failure
</span><span class="cx">          */
</span><span class="cx">         function get_row( $query = null, $output = OBJECT, $y = 0 ) {
</span><span class="lines">@@ -1258,7 +1277,7 @@
</span><span class="cx">          *
</span><span class="cx">          * @since 0.71
</span><span class="cx">          *
</span><del>-         * @param string|null $query Optional. SQL query. If null (default), use the result from the previous query.
</del><ins>+         * @param string|null $query Optional. SQL query. Defaults to previous query.
</ins><span class="cx">          * @param int $x Optional. Column to return. Indexed from 0.
</span><span class="cx">          * @return array Database query result. Array indexed from 0 by SQL result row number.
</span><span class="cx">          */
</span><span class="lines">@@ -1282,7 +1301,9 @@
</span><span class="cx">          * @since 0.71
</span><span class="cx">          *
</span><span class="cx">          * @param string $query SQL query.
</span><del>-         * @param string $output (optional) ane of ARRAY_A | ARRAY_N | OBJECT | OBJECT_K constants.  With one of the first three, return an array of rows indexed from 0 by SQL result row number.  Each row is an associative array (column =&gt; value, ...), a numerically indexed array (0 =&gt; value, ...), or an object. ( -&gt;column = value ), respectively.  With OBJECT_K, return an associative array of row objects keyed by the value of each row's first column's value.  Duplicate keys are discarded.
</del><ins>+         * @param string $output Optional. Any of ARRAY_A | ARRAY_N | OBJECT | OBJECT_K constants. With one of the first three, return an array of rows indexed from 0 by SQL result row number.
+         *         Each row is an associative array (column =&gt; value, ...), a numerically indexed array (0 =&gt; value, ...), or an object. ( -&gt;column = value ), respectively.
+         *         With OBJECT_K, return an associative array of row objects keyed by the value of each row's first column's value.  Duplicate keys are discarded.
</ins><span class="cx">          * @return mixed Database query results
</span><span class="cx">          */
</span><span class="cx">         function get_results( $query = null, $output = OBJECT ) {
</span><span class="lines">@@ -1385,7 +1406,7 @@
</span><span class="cx">          * @since 1.5.0
</span><span class="cx">          *
</span><span class="cx">          * @param string $message The Error message
</span><del>-         * @param string $error_code (optional) A Computer readable string to identify the error.
</del><ins>+         * @param string $error_code Optional. A Computer readable string to identify the error.
</ins><span class="cx">          * @return false|void
</span><span class="cx">          */
</span><span class="cx">         function bail( $message, $error_code = '500' ) {
</span><span class="lines">@@ -1436,7 +1457,6 @@
</span><span class="cx">          *
</span><span class="cx">          * @param string $db_cap the feature
</span><span class="cx">          * @param false|string|resource $dbh_or_table. Not implemented.
</span><del>-         *         Which database to test. False = the currently selected database, string = the database containing the specified table, resource = the database corresponding to the specified mysql resource.
</del><span class="cx">          * @return bool
</span><span class="cx">          */
</span><span class="cx">         function has_cap( $db_cap ) {
</span><span class="lines">@@ -1463,17 +1483,12 @@
</span><span class="cx">          * @return string The name of the calling function
</span><span class="cx">          */
</span><span class="cx">         function get_caller() {
</span><del>-                $bt = debug_backtrace();
</del><ins>+                $trace  = array_reverse( debug_backtrace() );
</ins><span class="cx">                 $caller = array();
</span><span class="cx"> 
</span><del>-                $bt = array_reverse( $bt );
-                foreach ( (array) $bt as $call ) {
</del><ins>+                foreach ( $trace as $call ) {
</ins><span class="cx">                         if ( isset( $call['class'] ) &amp;&amp; __CLASS__ == $call['class'] )
</span><del>-                                continue;
-                        $function = $call['function'];
-                        if ( isset( $call['class'] ) )
-                                $function = $call['class'] . &quot;-&gt;$function&quot;;
-                        $caller[] = $function;
</del><ins>+                                continue; // Filter out wpdb calls.
</ins><span class="cx">                 }
</span><span class="cx">                 $caller = join( ', ', $caller );
</span><span class="cx"> 
</span><span class="lines">@@ -1481,9 +1496,9 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         /**
</span><del>-         * The database version number
</del><ins>+         * The database version number.
+         *
</ins><span class="cx">          * @param false|string|resource $dbh_or_table. Not implemented.
</span><del>-         *         Which database to test. False = the currently selected database, string = the database containing the specified table, resource = the database corresponding to the specified mysql resource.
</del><span class="cx">          * @return false|string false on failure, version number on success
</span><span class="cx">          */
</span><span class="cx">         function db_version() {
</span></span></pre>
</div>
</div>

</body>
</html>