check_column

The timeline below displays how wordpress function check_column has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.2

/**
 * Checks that database table column matches the criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that criteria.
 *
 * Column names returned from DESC table are case sensitive and are as listed:
 *
 *  - Field
 *  - Type
 *  - Null
 *  - Key
 *  - Default
 *  - Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $table_name    Database table name.
 * @param string $col_name      Table column name.
 * @param string $col_type      Table column type.
 * @param bool   $is_null       Optional. Check is null.
 * @param mixed  $key           Optional. Key info.
 * @param mixed  $default_value Optional. Default value.
 * @param mixed  $extra         Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default_value = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Cannot be prepared. Fetches columns for table names.
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field === $col_name) {
            // Got our column, check the params.
            if (null !== $col_type && $row->Type !== $col_type) {
                ++$diffs;
            }
            if (null !== $is_null && $row->Null !== $is_null) {
                ++$diffs;
            }
            if (null !== $key && $row->Key !== $key) {
                ++$diffs;
            }
            if (null !== $default_value && $row->Default !== $default_value) {
                ++$diffs;
            }
            if (null !== $extra && $row->Extra !== $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // End if found our column.
    }
    return false;
}

WordPress Version: 6.1

/**
 * Checks that database table column matches the criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $table_name    Database table name.
 * @param string $col_name      Table column name.
 * @param string $col_type      Table column type.
 * @param bool   $is_null       Optional. Check is null.
 * @param mixed  $key           Optional. Key info.
 * @param mixed  $default_value Optional. Default value.
 * @param mixed  $extra         Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default_value = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field === $col_name) {
            // Got our column, check the params.
            if (null !== $col_type && $row->Type !== $col_type) {
                ++$diffs;
            }
            if (null !== $is_null && $row->Null !== $is_null) {
                ++$diffs;
            }
            if (null !== $key && $row->Key !== $key) {
                ++$diffs;
            }
            if (null !== $default_value && $row->Default !== $default_value) {
                ++$diffs;
            }
            if (null !== $extra && $row->Extra !== $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // End if found our column.
    }
    return false;
}

WordPress Version: 5.5

/**
 * Checks that database table column matches the criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $table_name Database table name.
 * @param string $col_name   Table column name.
 * @param string $col_type   Table column type.
 * @param bool   $is_null    Optional. Check is null.
 * @param mixed  $key        Optional. Key info.
 * @param mixed  $default    Optional. Default value.
 * @param mixed  $extra      Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field === $col_name) {
            // Got our column, check the params.
            if (null !== $col_type && $row->Type !== $col_type) {
                ++$diffs;
            }
            if (null !== $is_null && $row->Null !== $is_null) {
                ++$diffs;
            }
            if (null !== $key && $row->Key !== $key) {
                ++$diffs;
            }
            if (null !== $default && $row->Default !== $default) {
                ++$diffs;
            }
            if (null !== $extra && $row->Extra !== $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // End if found our column.
    }
    return false;
}

WordPress Version: 5.4

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $table_name Table name
 * @param string $col_name   Column name
 * @param string $col_type   Column type
 * @param bool   $is_null    Optional. Check is null.
 * @param mixed  $key        Optional. Key info.
 * @param mixed  $default    Optional. Default value.
 * @param mixed  $extra      Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // Got our column, check the params.
            if (null != $col_type && $row->Type != $col_type) {
                ++$diffs;
            }
            if (null != $is_null && $row->Null != $is_null) {
                ++$diffs;
            }
            if (null != $key && $row->Key != $key) {
                ++$diffs;
            }
            if (null != $default && $row->Default != $default) {
                ++$diffs;
            }
            if (null != $extra && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // End if found our column.
    }
    return false;
}

WordPress Version: 4.4

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $table_name Table name
 * @param string $col_name   Column name
 * @param string $col_type   Column type
 * @param bool   $is_null    Optional. Check is null.
 * @param mixed  $key        Optional. Key info.
 * @param mixed  $default    Optional. Default value.
 * @param mixed  $extra      Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // Got our column, check the params.
            if ($col_type != null && $row->Type != $col_type) {
                ++$diffs;
            }
            if ($is_null != null && $row->Null != $is_null) {
                ++$diffs;
            }
            if ($key != null && $row->Key != $key) {
                ++$diffs;
            }
            if ($default != null && $row->Default != $default) {
                ++$diffs;
            }
            if ($extra != null && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // end if found our column
    }
    return false;
}

WordPress Version: 4.3

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @global wpdb $wpdb
 *
 * @param string $table_name Table name
 * @param string $col_name   Column name
 * @param string $col_type   Column type
 * @param bool   $is_null    Optional. Check is null.
 * @param mixed  $key        Optional. Key info.
 * @param mixed  $default    Optional. Default value.
 * @param mixed  $extra      Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // Got our column, check the params.
            if ($col_type != null && $row->Type != $col_type) {
                ++$diffs;
            }
            if ($is_null != null && $row->Null != $is_null) {
                ++$diffs;
            }
            if ($key != null && $row->Key != $key) {
                ++$diffs;
            }
            if ($default != null && $row->Default != $default) {
                ++$diffs;
            }
            if ($extra != null && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // end if found our column
    }
    return false;
}

WordPress Version: 4.0

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @param string $table_name Table name
 * @param string $col_name Column name
 * @param string $col_type Column type
 * @param bool $is_null Optional. Check is null.
 * @param mixed $key Optional. Key info.
 * @param mixed $default Optional. Default value.
 * @param mixed $extra Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // Got our column, check the params.
            if ($col_type != null && $row->Type != $col_type) {
                ++$diffs;
            }
            if ($is_null != null && $row->Null != $is_null) {
                ++$diffs;
            }
            if ($key != null && $row->Key != $key) {
                ++$diffs;
            }
            if ($default != null && $row->Default != $default) {
                ++$diffs;
            }
            if ($extra != null && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // end if found our column
    }
    return false;
}

WordPress Version: 3.9

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 *
 * @param string $table_name Table name
 * @param string $col_name Column name
 * @param string $col_type Column type
 * @param bool $is_null Optional. Check is null.
 * @param mixed $key Optional. Key info.
 * @param mixed $default Optional. Default value.
 * @param mixed $extra Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // got our column, check the params
            if ($col_type != null && $row->Type != $col_type) {
                ++$diffs;
            }
            if ($is_null != null && $row->Null != $is_null) {
                ++$diffs;
            }
            if ($key != null && $row->Key != $key) {
                ++$diffs;
            }
            if ($default != null && $row->Default != $default) {
                ++$diffs;
            }
            if ($extra != null && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // end if found our column
    }
    return false;
}

WordPress Version: 3.7

/**
 * Check column matches criteria.
 *
 * Uses the SQL DESC for retrieving the table info for the column. It will help
 * understand the parameters, if you do more research on what column information
 * is returned by the SQL statement. Pass in null to skip checking that
 * criteria.
 *
 * Column names returned from DESC table are case sensitive and are listed:
 *      Field
 *      Type
 *      Null
 *      Key
 *      Default
 *      Extra
 *
 * @since 1.0.0
 * @package WordPress
 * @subpackage Plugin
 *
 * @param string $table_name Table name
 * @param string $col_name Column name
 * @param string $col_type Column type
 * @param bool $is_null Optional. Check is null.
 * @param mixed $key Optional. Key info.
 * @param mixed $default Optional. Default value.
 * @param mixed $extra Optional. Extra value.
 * @return bool True, if matches. False, if not matching.
 */
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null)
{
    global $wpdb;
    $diffs = 0;
    $results = $wpdb->get_results("DESC {$table_name}");
    foreach ($results as $row) {
        if ($row->Field == $col_name) {
            // got our column, check the params
            if ($col_type != null && $row->Type != $col_type) {
                ++$diffs;
            }
            if ($is_null != null && $row->Null != $is_null) {
                ++$diffs;
            }
            if ($key != null && $row->Key != $key) {
                ++$diffs;
            }
            if ($default != null && $row->Default != $default) {
                ++$diffs;
            }
            if ($extra != null && $row->Extra != $extra) {
                ++$diffs;
            }
            if ($diffs > 0) {
                return false;
            }
            return true;
        }
        // end if found our column
    }
    return false;
}