[ Index ] |
|
Code source de WordPress 2.1.2 |
1 <?php 2 require_once('../wp-config.php'); 3 $debug = 0; 4 5 /** 6 ** maybe_create_table() 7 ** Create db table if it doesn't exist. 8 ** Returns: true if already exists or on successful completion 9 ** false on error 10 */ 11 function maybe_create_table($table_name, $create_ddl) { 12 global $wpdb; 13 foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { 14 if ($table == $table_name) { 15 return true; 16 } 17 } 18 //didn't find it try to create it. 19 $q = $wpdb->query($create_ddl); 20 // we cannot directly tell that whether this succeeded! 21 foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { 22 if ($table == $table_name) { 23 return true; 24 } 25 } 26 return false; 27 } 28 29 /** 30 ** maybe_add_column() 31 ** Add column to db table if it doesn't exist. 32 ** Returns: true if already exists or on successful completion 33 ** false on error 34 */ 35 function maybe_add_column($table_name, $column_name, $create_ddl) { 36 global $wpdb, $debug; 37 foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { 38 if ($debug) echo("checking $column == $column_name<br />"); 39 if ($column == $column_name) { 40 return true; 41 } 42 } 43 //didn't find it try to create it. 44 $q = $wpdb->query($create_ddl); 45 // we cannot directly tell that whether this succeeded! 46 foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { 47 if ($column == $column_name) { 48 return true; 49 } 50 } 51 return false; 52 } 53 54 55 /** 56 ** maybe_drop_column() 57 ** Drop column from db table if it exists. 58 ** Returns: true if it doesn't already exist or on successful drop 59 ** false on error 60 */ 61 function maybe_drop_column($table_name, $column_name, $drop_ddl) { 62 global $wpdb; 63 foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { 64 if ($column == $column_name) { 65 //found it try to drop it. 66 $q = $wpdb->query($drop_ddl); 67 // we cannot directly tell that whether this succeeded! 68 foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { 69 if ($column == $column_name) { 70 return false; 71 } 72 } 73 } 74 } 75 // else didn't find it 76 return true; 77 } 78 79 80 /** 81 ** check_column() 82 ** Check column matches passed in criteria. 83 ** Pass in null to skip checking that criteria 84 ** Returns: true if it matches 85 ** false otherwise 86 ** (case sensitive) Column names returned from DESC table are: 87 ** Field 88 ** Type 89 ** Null 90 ** Key 91 ** Default 92 ** Extra 93 */ 94 function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null) { 95 global $wpdb, $debug; 96 $diffs = 0; 97 $results = $wpdb->get_results("DESC $table_name"); 98 99 foreach ($results as $row ) { 100 if ($debug > 1) print_r($row); 101 if ($row->Field == $col_name) { 102 // got our column, check the params 103 if ($debug) echo ("checking $row->Type against $col_type\n"); 104 if (($col_type != null) && ($row->Type != $col_type)) { 105 ++$diffs; 106 } 107 if (($is_null != null) && ($row->Null != $is_null)) { 108 ++$diffs; 109 } 110 if (($key != null) && ($row->Key != $key)) { 111 ++$diffs; 112 } 113 if (($default != null) && ($row->Default != $default)) { 114 ++$diffs; 115 } 116 if (($extra != null) && ($row->Extra != $extra)) { 117 ++$diffs; 118 } 119 if ($diffs > 0) { 120 if ($debug) echo ("diffs = $diffs returning false\n"); 121 return false; 122 } 123 return true; 124 } // end if found our column 125 } 126 return false; 127 } 128 129 /* 130 echo "<p>testing</p>"; 131 echo "<pre>"; 132 133 //check_column('wp_links', 'link_description', 'mediumtext'); 134 //if (check_column($wpdb->comments, 'comment_author', 'tinytext')) 135 // echo "ok\n"; 136 $error_count = 0; 137 $tablename = $wpdb->links; 138 // check the column 139 if (!check_column($wpdb->links, 'link_description', 'varchar(255)')) 140 { 141 $ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' "; 142 $q = $wpdb->query($ddl); 143 } 144 if (check_column($wpdb->links, 'link_description', 'varchar(255)')) { 145 $res .= $tablename . ' - ok <br />'; 146 } else { 147 $res .= 'There was a problem with ' . $tablename . '<br />'; 148 ++$error_count; 149 } 150 echo "</pre>"; 151 */ 152 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Mar 30 19:41:27 2007 | par Balluche grâce à PHPXref 0.7 |