[wp-hackers] Table prefix with captial letters
alex.cologne at googlemail.com
Mon Sep 27 18:29:09 UTC 2010
Thank to your answer, the simple check as Andrew said should be fine.
function maybe_create_table() in includes\upgrade.php should IMHO
failed in the same way.
Never used by WordPress core, but maybe better to fix it ?
On 27 Sep., 19:42, Peter van der Does <pe... at avirtualhome.com> wrote:
> On Mon, 27 Sep 2010 07:32:35 -0700 (PDT)
> Alex Rabe <alex.colo... at googlemail.com> wrote:
> > After a very long time I found the reason why some user can't upgrade
> > or install my plugin. Initially I followed the Codex
> > recommendation(http://codex.wordpress.org/Creating_Tables_with_Plugins
> > ) if a table is already installed or not :
> > if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name)
> > The problem with this check is when the table prefix contain a captial
> > letter (ie "WP_"), the check will failed as it's case sensitve (The
> > MySQL System variable 'lower_case_table_names' force a lower case
> > table name).
> > Of course it's simple to check in this case for :
> > if( strcasecmp ( $wpdb->get_var("show tables like '$table_name"),
> > $table_name) != 0 )
> > But I would like to know if someone knows a better or more foolproof
> > check for upgrade & install routines
> I believe you can solve it by checking for NULL, so instead of checking
> for the != $tablename, check for === NULL
> $wpdb->get_var will return NULL if the query doesn't give a result.
> Peter van der Does
> GPG key: E77E8E98
> IRC: Ganseki on irc.freenode.net
> Twitter: @petervanderdoes
> WordPress Plugin Developer
> Twitter: @avhsoftware
> wp-hackers mailing list
> wp-hack... at lists.automattic.comhttp://lists.automattic.com/mailman/listinfo/wp-hackers
More information about the wp-hackers