diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-06-22 18:31:50 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-06-22 18:31:50 +0000 |
commit | d48e85e0ac5e675ca33fac173f30c75403d1033f (patch) | |
tree | 1164430fa3b83a4d9283961b09c1576f2885e6b2 /wp-admin/install-helper.php | |
parent | 086dcde66603301531efc6d8087bd06d0546f148 (diff) | |
download | wordpress-mu-d48e85e0ac5e675ca33fac173f30c75403d1033f.tar.gz wordpress-mu-d48e85e0ac5e675ca33fac173f30c75403d1033f.tar.xz wordpress-mu-d48e85e0ac5e675ca33fac173f30c75403d1033f.zip |
Moved everything in wp-inst down a directory.
Uses's Ryan Boren's htaccess rules and mods
If you're upgrading, try this on a test server first!
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@591 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-admin/install-helper.php')
-rw-r--r-- | wp-admin/install-helper.php | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/wp-admin/install-helper.php b/wp-admin/install-helper.php new file mode 100644 index 0000000..86138db --- /dev/null +++ b/wp-admin/install-helper.php @@ -0,0 +1,152 @@ +<?php +require_once('../wp-config.php'); +$debug = 0; + +/** + ** maybe_create_table() + ** Create db table if it doesn't exist. + ** Returns: true if already exists or on successful completion + ** false on error + */ +function maybe_create_table($table_name, $create_ddl) { + global $wpdb; + foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { + if ($table == $table_name) { + return true; + } + } + //didn't find it try to create it. + $q = $wpdb->query($create_ddl); + // we cannot directly tell that whether this succeeded! + foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { + if ($table == $table_name) { + return true; + } + } + return false; +} + +/** + ** 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 + */ +function maybe_add_column($table_name, $column_name, $create_ddl) { + global $wpdb, $debug; + foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { + if ($debug) echo("checking $column == $column_name<br />"); + if ($column == $column_name) { + return true; + } + } + //didn't find it try to create it. + $q = $wpdb->query($create_ddl); + // we cannot directly tell that whether this succeeded! + foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { + if ($column == $column_name) { + return true; + } + } + return false; +} + + +/** + ** 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 + */ +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. + $q = $wpdb->query($drop_ddl); + // we cannot directly tell that whether this succeeded! + foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { + if ($column == $column_name) { + return false; + } + } + } + } + // 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 + */ +function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null) { + global $wpdb, $debug; + $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 "<p>testing</p>"; +echo "<pre>"; + +//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 <br />'; +} else { + $res .= 'There was a problem with ' . $tablename . '<br />'; + ++$error_count; +} +echo "</pre>"; +*/ +?>
\ No newline at end of file |