[ Index ]
 

Code source de WordPress 2.1.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/wp-admin/ -> install-helper.php (source)

   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  ?>


Généré le : Fri Mar 30 19:41:27 2007 par Balluche grâce à PHPXref 0.7