$database->getPrimaryKey() method

Get column(s) or info for given table’s primary key/index

By default it returns a string with the column name compromising the primary key, i.e. col1. If the primary key is multiple columns then it returns a CSV string, like col1,col2,col3.

If you specify boolean true for the verbose option then it returns an simplified array of information about the primary key. If you specify integer 2 then it returns an array of raw MySQL SHOW INDEX information.

Available since version 3.0.182.


// basic usage
$string = $database->getPrimaryKey(string $table);

// usage with all arguments
$string = $database->getPrimaryKey(string $table, $verbose = false);


verbose (optional)bool, int

Get array of info rather than column(s) string? (default=false)

Return value

string array

$database methods and properties

API reference based on ProcessWire core version 3.0.185

Twitter updates

  • ProcessWire 3.0.192 (dev branch) contains 11 issue fixes and 5 pull requests, over 20 commits— More
    7 January 2022
  • ProcessWire 3.0.191 core updates: updates to the installer and the profile exporter module— More
    24 December 2021
  • This week ProcessWire went on a diet, trimming the core size from 15.5 MB down to 7.5 MB by moving optional site profiles into their own GitHub repos— More
    17 December 2021

Latest news

  • ProcessWire Weekly #401
    In the 401st issue of ProcessWire Weekly we'll cover the latest core updates, check out a brand new module called Lister Native Date Format, and more. Read on!
    Weekly.pw / 15 January 2022
  • ProcessWire 3.0.190 core updates
    ProcessWire 3.0.190 has 15 commits relative to 3.0.189 and contains a mixture of issue resolutions and feature additions. This post covers them all, in addition to updates for the PageAutosave and ProFields Table modules.
    Blog / 3 December 2021
  • Subscribe to weekly ProcessWire news

“I am currently managing a ProcessWire site with 2 million+ pages. It’s admirably fast, and much, much faster than any other CMS we tested.” —Nickie, Web developer