$database->indexExists() method

Does table have an index with given name?

Available since version 3.0.182.

Example

// 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
}

Usage

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

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

Arguments

NameType(s)Description
tablestring
indexNamestring
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.236

Latest news

  • ProcessWire Weekly #553
    In the 553rd issue of ProcessWire Weekly we'll check out the latest weekly update from Ryan, introduce a new third party module called Text Synthesis, and more. Read on!
    Weekly.pw / 14 December 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK