$database->indexExists() method

Does table have an index with given name?

Available since version 3.0.182.


// simple index check
if($database->indexExists('my_table', 'my_index')) {
  // index named my_index exists for my_table

// index check and get array of info if it exists
$info = $database->indexExists('my_table', 'my_index', true);
if($info) {
  // info is raw array of information about index from MySQL
} else {
  // index does not exist


// basic usage
$bool = $database->indexExists(string $table, string $indexName);

// usage with all arguments
$bool = $database->indexExists(string $table, string $indexName, bool $getInfo = false);


getInfo (optional)bool

Return arrays of index information rather than boolean true? (default=false) Note that the verbose arrays are the raw MySQL return values from a SHOW INDEX command.

Return value

bool array

Returns one of the following:

  • false: if index does not exist (regardless of $getInfo argument).
  • true: if index exists and $getInfo argument is omitted or false.
  • array: array of arrays with verbose information if index exists and $getInfo argument is true.

$database methods and properties

API reference based on ProcessWire core version 3.0.184

Twitter updates

  • ProcessWire 3.0.185 (dev) core updates, plus new Session Allow module— More
    17 September 2021
  • Three new ProcessWire Textformatter modules: Find/Replace, Markdown in Markup, and Emoji— More
    3 September 2021
  • This week we have a new master version released after a year in the making. With nearly 40 pull requests, hundreds of new additions and more than 100 issue reports resolved, this new version has a ton of great new stuff— More
    27 August 2021

Latest news

  • ProcessWire Weekly #384
    In the 384th issue of ProcessWire Weekly we'll cover the latest core updates, introduce a new module called Session Allow, and highlight a new site of the week. Read on!
    Weekly.pw / 18 September 2021
  • ProcessWire 3.0.184 new master/main version
    This week we have a new master/main version released after a full year in the making. As you might imagine, this new version has a ton of great new stuff and we’ll try to cover much of it here.
    Blog / 27 August 2021
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer