X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/76aea3697c6043c1613370f172395b4f65ee71f0..refs/tags/wordpress-4.3:/wp-admin/install-helper.php diff --git a/wp-admin/install-helper.php b/wp-admin/install-helper.php index eebe0e3e..1a3ced5e 100644 --- a/wp-admin/install-helper.php +++ b/wp-admin/install-helper.php @@ -1,15 +1,54 @@ comments, 'comment_author', 'tinytext' ) ) { + * echo "ok\n"; + * } + * + * $error_count = 0; + * $tablename = $wpdb->links; + * // Check the column. + * if ( ! check_column($wpdb->links, 'link_description', 'varchar( 255 )' ) ) { + * $ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' "; + * $q = $wpdb->query( $ddl ); + * } + * + * if ( check_column( $wpdb->links, 'link_description', 'varchar( 255 )' ) ) { + * $res .= $tablename . ' - ok
'; + * } else { + * $res .= 'There was a problem with ' . $tablename . '
'; + * ++$error_count; + * } + * + * @package WordPress + * @subpackage Plugin + */ + +/** Load WordPress Bootstrap */ require_once(dirname(dirname(__FILE__)).'/wp-load.php'); -$debug = 0; +if ( ! function_exists('maybe_create_table') ) : /** - ** maybe_create_table() - ** Create db table if it doesn't exist. - ** Returns: true if already exists or on successful completion - ** false on error + * Create database table, if it doesn't already exist. + * + * @since 1.0.0 + * + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param string $table_name Database table name. + * @param string $create_ddl Create database table SQL. + * @return bool False on error, true if already exists or success. */ -if ( ! function_exists('maybe_create_table') ) : function maybe_create_table($table_name, $create_ddl) { global $wpdb; foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { @@ -17,9 +56,10 @@ function maybe_create_table($table_name, $create_ddl) { return true; } } - //didn't find it try to create it. + // Didn't find it, so try to create it. $wpdb->query($create_ddl); - // we cannot directly tell that whether this succeeded! + + // We cannot directly tell that whether this succeeded! foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { if ($table == $table_name) { return true; @@ -29,24 +69,32 @@ function maybe_create_table($table_name, $create_ddl) { } endif; +if ( ! function_exists('maybe_add_column') ) : /** - ** maybe_add_column() - ** Add column to db table if it doesn't exist. - ** Returns: true if already exists or on successful completion - ** false on error + * Add column to database table, if column doesn't already exist in table. + * + * @since 1.0.0 + * + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param string $table_name Database table name + * @param string $column_name Table column name + * @param string $create_ddl SQL to add column to table. + * @return bool False on failure. True, if already exists or was successful. */ -if ( ! function_exists('maybe_add_column') ) : function maybe_add_column($table_name, $column_name, $create_ddl) { - global $wpdb, $debug; + global $wpdb; foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { - if ($debug) echo("checking $column == $column_name
"); - if ($column == $column_name) { - return true; - } + + if ($column == $column_name) { + return true; + } } - //didn't find it try to create it. + + // Didn't find it, so try to create it. $wpdb->query($create_ddl); - // we cannot directly tell that whether this succeeded! + + // We cannot directly tell that whether this succeeded! foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { if ($column == $column_name) { return true; @@ -57,18 +105,26 @@ function maybe_add_column($table_name, $column_name, $create_ddl) { endif; /** - ** maybe_drop_column() - ** Drop column from db table if it exists. - ** Returns: true if it doesn't already exist or on successful drop - ** false on error + * Drop column from database table, if it exists. + * + * @since 1.0.0 + * + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param string $table_name Table name + * @param string $column_name Column name + * @param string $drop_ddl SQL statement to drop column. + * @return bool False on failure, true on success or doesn't exist. */ function maybe_drop_column($table_name, $column_name, $drop_ddl) { global $wpdb; foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { if ($column == $column_name) { - //found it try to drop it. + + // Found it, so try to drop it. $wpdb->query($drop_ddl); - // we cannot directly tell that whether this succeeded! + + // We cannot directly tell that whether this succeeded! foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { if ($column == $column_name) { return false; @@ -76,81 +132,69 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) { } } } - // else didn't find it + // Else didn't find it. return true; } - /** - ** check_column() - ** Check column matches passed in criteria. - ** Pass in null to skip checking that criteria - ** Returns: true if it matches - ** false otherwise - ** (case sensitive) Column names returned from DESC table are: - ** Field - ** Type - ** Null - ** Key - ** Default - ** Extra + * Check column matches criteria. + * + * Uses the SQL DESC for retrieving the table info for the column. It will help + * understand the parameters, if you do more research on what column information + * is returned by the SQL statement. Pass in null to skip checking that + * criteria. + * + * Column names returned from DESC table are case sensitive and are listed: + * Field + * Type + * Null + * Key + * Default + * Extra + * + * @since 1.0.0 + * + * @global wpdb $wpdb + * + * @param string $table_name Table name + * @param string $col_name Column name + * @param string $col_type Column type + * @param bool $is_null Optional. Check is null. + * @param mixed $key Optional. Key info. + * @param mixed $default Optional. Default value. + * @param mixed $extra Optional. Extra value. + * @return bool True, if matches. False, if not matching. */ function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null) { - global $wpdb, $debug; + global $wpdb; $diffs = 0; $results = $wpdb->get_results("DESC $table_name"); foreach ($results as $row ) { - if ($debug > 1) print_r($row); - if ($row->Field == $col_name) { - // got our column, check the params - if ($debug) echo ("checking $row->Type against $col_type\n"); - if (($col_type != null) && ($row->Type != $col_type)) { - ++$diffs; - } - if (($is_null != null) && ($row->Null != $is_null)) { - ++$diffs; - } - if (($key != null) && ($row->Key != $key)) { - ++$diffs; - } - if (($default != null) && ($row->Default != $default)) { - ++$diffs; - } - if (($extra != null) && ($row->Extra != $extra)) { - ++$diffs; - } - if ($diffs > 0) { - if ($debug) echo ("diffs = $diffs returning false\n"); - return false; - } - return true; - } // end if found our column - } - return false; -} -/* -echo "

testing

"; -echo "
";
+		if ($row->Field == $col_name) {
 
-//check_column('wp_links', 'link_description', 'mediumtext');
-//if (check_column($wpdb->comments, 'comment_author', 'tinytext'))
-//    echo "ok\n";
-$error_count = 0;
-$tablename = $wpdb->links;
-// check the column
-if (!check_column($wpdb->links, 'link_description', 'varchar(255)'))
-{
-	$ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' ";
-	$q = $wpdb->query($ddl);
-}
-if (check_column($wpdb->links, 'link_description', 'varchar(255)')) {
-	$res .= $tablename . ' - ok 
'; -} else { - $res .= 'There was a problem with ' . $tablename . '
'; - ++$error_count; + // Got our column, check the params. + if (($col_type != null) && ($row->Type != $col_type)) { + ++$diffs; + } + if (($is_null != null) && ($row->Null != $is_null)) { + ++$diffs; + } + if (($key != null) && ($row->Key != $key)) { + ++$diffs; + } + if (($default != null) && ($row->Default != $default)) { + ++$diffs; + } + if (($extra != null) && ($row->Extra != $extra)) { + ++$diffs; + } + if ($diffs > 0) { + return false; + } + return true; + } // end if found our column + } + return false; } -echo "
"; -*/ -?>