PHP: Check MySQL database to see if table, field, or value exists

This procedural function will tell you if the table you are looking for is found within your currently selected MySQL database. Optionally, it will also determine if a column exists within the specified table. You can even pass the a value as the optional third parameter to see if the field’s value is also what you expect.

function match_table_field($table, $field = NULL, $value = NULL) {
   $table = mysql_escape_string($table);
   $query = mysql_query("SHOW TABLES LIKE '{$table}'");
   if (mysql_num_rows($query)) {
      if (empty($field)) {
         return TRUE;
      } else {
         $sql = "SELECT * FROM `{$table}`";
         if ($value) {
            $value = mysql_escape_string($value);
            $sql .= " WHERE `{$field}` = '{$value}'";
         }
         $query = mysql_query($sql);
         if (mysql_num_rows($query)) {
            if (empty($value)) {
               $row = mysql_fetch_array($query);
               return isset($row[$field]);
            } else {
               return TRUE;
            }
         }
      }
   }
   return FALSE;
}

I posted a similar suggestion in the Open Cart forums as a possible method to better automate Open Cart’s upgrade script.

Note: I converted the above example written for Open Cart to procedural PHP to reduce confusion and for the sake of simplicity 😉

Leave a Reply

Your email address will not be published. Required fields are marked *