Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/wordpres.../lib/migratio...
File: adapter.php
/**
[500] Fix | Delete
* Changes a column.
[501] Fix | Delete
*
[502] Fix | Delete
* @param string $table_name The table name.
[503] Fix | Delete
* @param string $column_name The column name.
[504] Fix | Delete
* @param string $type The column type.
[505] Fix | Delete
* @param array $options Column options.
[506] Fix | Delete
*
[507] Fix | Delete
* @return bool
[508] Fix | Delete
*/
[509] Fix | Delete
public function change_column( $table_name, $column_name, $type, $options = [] ) {
[510] Fix | Delete
if ( empty( $table_name ) || empty( $column_name ) || empty( $type ) ) {
[511] Fix | Delete
return false;
[512] Fix | Delete
}
[513] Fix | Delete
$column_info = $this->column_info( $table_name, $column_name );
[514] Fix | Delete
// Default types.
[515] Fix | Delete
if ( ! \array_key_exists( 'limit', $options ) ) {
[516] Fix | Delete
$options['limit'] = null;
[517] Fix | Delete
}
[518] Fix | Delete
if ( ! \array_key_exists( 'precision', $options ) ) {
[519] Fix | Delete
$options['precision'] = null;
[520] Fix | Delete
}
[521] Fix | Delete
if ( ! \array_key_exists( 'scale', $options ) ) {
[522] Fix | Delete
$options['scale'] = null;
[523] Fix | Delete
}
[524] Fix | Delete
$sql = \sprintf( 'ALTER TABLE `%s` CHANGE `%s` `%s` %s', $table_name, $column_name, $column_name, $this->type_to_sql( $type, $options ) );
[525] Fix | Delete
$sql .= $this->add_column_options( $type, $options );
[526] Fix | Delete
[527] Fix | Delete
return $this->execute_ddl( $sql );
[528] Fix | Delete
}
[529] Fix | Delete
[530] Fix | Delete
/**
[531] Fix | Delete
* Returns the database information for a column.
[532] Fix | Delete
*
[533] Fix | Delete
* @param string $table The table name.
[534] Fix | Delete
* @param string $column The column name.
[535] Fix | Delete
*
[536] Fix | Delete
* @return array|null
[537] Fix | Delete
*/
[538] Fix | Delete
public function column_info( $table, $column ) {
[539] Fix | Delete
if ( empty( $table ) || empty( $column ) ) {
[540] Fix | Delete
return null;
[541] Fix | Delete
}
[542] Fix | Delete
[543] Fix | Delete
try {
[544] Fix | Delete
$sql = \sprintf( "SHOW FULL COLUMNS FROM %s LIKE '%s'", $this->identifier( $table ), $column );
[545] Fix | Delete
$result = $this->select_one( $sql );
[546] Fix | Delete
if ( \is_array( $result ) ) {
[547] Fix | Delete
$result = \array_change_key_case( $result, \CASE_LOWER );
[548] Fix | Delete
}
[549] Fix | Delete
[550] Fix | Delete
return $result;
[551] Fix | Delete
} catch ( Exception $e ) {
[552] Fix | Delete
return null;
[553] Fix | Delete
}
[554] Fix | Delete
}
[555] Fix | Delete
[556] Fix | Delete
/**
[557] Fix | Delete
* Adds an index.
[558] Fix | Delete
*
[559] Fix | Delete
* @param string $table_name The table name.
[560] Fix | Delete
* @param array|string $column_name The column name(s).
[561] Fix | Delete
* @param array $options Index options.
[562] Fix | Delete
*
[563] Fix | Delete
* @return bool
[564] Fix | Delete
*/
[565] Fix | Delete
public function add_index( $table_name, $column_name, $options = [] ) {
[566] Fix | Delete
if ( empty( $table_name ) || empty( $column_name ) ) {
[567] Fix | Delete
return false;
[568] Fix | Delete
}
[569] Fix | Delete
// Unique index?
[570] Fix | Delete
if ( \is_array( $options ) && \array_key_exists( 'unique', $options ) && $options['unique'] === true ) {
[571] Fix | Delete
$unique = true;
[572] Fix | Delete
}
[573] Fix | Delete
else {
[574] Fix | Delete
$unique = false;
[575] Fix | Delete
}
[576] Fix | Delete
[577] Fix | Delete
// Did the user specify an index name?
[578] Fix | Delete
if ( \is_array( $options ) && \array_key_exists( 'name', $options ) ) {
[579] Fix | Delete
$index_name = $options['name'];
[580] Fix | Delete
}
[581] Fix | Delete
else {
[582] Fix | Delete
$index_name = $this->get_index_name( $table_name, $column_name );
[583] Fix | Delete
}
[584] Fix | Delete
[585] Fix | Delete
if ( \strlen( $index_name ) > Constants::MYSQL_MAX_IDENTIFIER_LENGTH ) {
[586] Fix | Delete
return false;
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
if ( ! \is_array( $column_name ) ) {
[590] Fix | Delete
$column_names = [ $column_name ];
[591] Fix | Delete
}
[592] Fix | Delete
else {
[593] Fix | Delete
$column_names = $column_name;
[594] Fix | Delete
}
[595] Fix | Delete
[596] Fix | Delete
$cols = [];
[597] Fix | Delete
foreach ( $column_names as $name ) {
[598] Fix | Delete
$cols[] = $this->identifier( $name );
[599] Fix | Delete
}
[600] Fix | Delete
$sql = \sprintf(
[601] Fix | Delete
'CREATE %sINDEX %s ON %s(%s)',
[602] Fix | Delete
( $unique === true ) ? 'UNIQUE ' : '',
[603] Fix | Delete
$this->identifier( $index_name ),
[604] Fix | Delete
$this->identifier( $table_name ),
[605] Fix | Delete
\implode( ', ', $cols )
[606] Fix | Delete
);
[607] Fix | Delete
[608] Fix | Delete
return $this->execute_ddl( $sql );
[609] Fix | Delete
}
[610] Fix | Delete
[611] Fix | Delete
/**
[612] Fix | Delete
* Drops an index.
[613] Fix | Delete
*
[614] Fix | Delete
* @param string $table_name The table name.
[615] Fix | Delete
* @param array|string $column_name The column name(s).
[616] Fix | Delete
* @param array $options Index options.
[617] Fix | Delete
*
[618] Fix | Delete
* @return bool
[619] Fix | Delete
*/
[620] Fix | Delete
public function remove_index( $table_name, $column_name, $options = [] ) {
[621] Fix | Delete
if ( empty( $table_name ) || empty( $column_name ) ) {
[622] Fix | Delete
return false;
[623] Fix | Delete
}
[624] Fix | Delete
// Did the user specify an index name?
[625] Fix | Delete
if ( \is_array( $options ) && \array_key_exists( 'name', $options ) ) {
[626] Fix | Delete
$index_name = $options['name'];
[627] Fix | Delete
}
[628] Fix | Delete
else {
[629] Fix | Delete
$index_name = $this->get_index_name( $table_name, $column_name );
[630] Fix | Delete
}
[631] Fix | Delete
[632] Fix | Delete
$sql = \sprintf( 'DROP INDEX %s ON %s', $this->identifier( $index_name ), $this->identifier( $table_name ) );
[633] Fix | Delete
[634] Fix | Delete
return $this->execute_ddl( $sql );
[635] Fix | Delete
}
[636] Fix | Delete
[637] Fix | Delete
/**
[638] Fix | Delete
* Adds timestamps.
[639] Fix | Delete
*
[640] Fix | Delete
* @param string $table_name The table name.
[641] Fix | Delete
* @param string $created_column_name Created at column name.
[642] Fix | Delete
* @param string $updated_column_name Updated at column name.
[643] Fix | Delete
*
[644] Fix | Delete
* @return bool
[645] Fix | Delete
*/
[646] Fix | Delete
public function add_timestamps( $table_name, $created_column_name, $updated_column_name ) {
[647] Fix | Delete
if ( empty( $table_name ) || empty( $created_column_name ) || empty( $updated_column_name ) ) {
[648] Fix | Delete
return false;
[649] Fix | Delete
}
[650] Fix | Delete
$created_at = $this->add_column( $table_name, $created_column_name, 'datetime' );
[651] Fix | Delete
$updated_at = $this->add_column(
[652] Fix | Delete
$table_name,
[653] Fix | Delete
$updated_column_name,
[654] Fix | Delete
'timestamp',
[655] Fix | Delete
[
[656] Fix | Delete
'null' => false,
[657] Fix | Delete
'default' => 'CURRENT_TIMESTAMP',
[658] Fix | Delete
'extra' => 'ON UPDATE CURRENT_TIMESTAMP',
[659] Fix | Delete
]
[660] Fix | Delete
);
[661] Fix | Delete
[662] Fix | Delete
return $created_at && $updated_at;
[663] Fix | Delete
}
[664] Fix | Delete
[665] Fix | Delete
/**
[666] Fix | Delete
* Removes timestamps.
[667] Fix | Delete
*
[668] Fix | Delete
* @param string $table_name The table name.
[669] Fix | Delete
* @param string $created_column_name Created at column name.
[670] Fix | Delete
* @param string $updated_column_name Updated at column name.
[671] Fix | Delete
*
[672] Fix | Delete
* @return bool Whether or not the timestamps were removed.
[673] Fix | Delete
*/
[674] Fix | Delete
public function remove_timestamps( $table_name, $created_column_name, $updated_column_name ) {
[675] Fix | Delete
if ( empty( $table_name ) || empty( $created_column_name ) || empty( $updated_column_name ) ) {
[676] Fix | Delete
return false;
[677] Fix | Delete
}
[678] Fix | Delete
$updated_at = $this->remove_column( $table_name, $created_column_name );
[679] Fix | Delete
$created_at = $this->remove_column( $table_name, $updated_column_name );
[680] Fix | Delete
[681] Fix | Delete
return $created_at && $updated_at;
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
/**
[685] Fix | Delete
* Checks an index.
[686] Fix | Delete
*
[687] Fix | Delete
* @param string $table_name The table name.
[688] Fix | Delete
* @param array|string $column_name The column name(s).
[689] Fix | Delete
* @param array $options Index options.
[690] Fix | Delete
*
[691] Fix | Delete
* @return bool Whether or not the index exists.
[692] Fix | Delete
*/
[693] Fix | Delete
public function has_index( $table_name, $column_name, $options = [] ) {
[694] Fix | Delete
if ( empty( $table_name ) || empty( $column_name ) ) {
[695] Fix | Delete
return false;
[696] Fix | Delete
}
[697] Fix | Delete
// Did the user specify an index name?
[698] Fix | Delete
if ( \is_array( $options ) && \array_key_exists( 'name', $options ) ) {
[699] Fix | Delete
$index_name = $options['name'];
[700] Fix | Delete
}
[701] Fix | Delete
else {
[702] Fix | Delete
$index_name = $this->get_index_name( $table_name, $column_name );
[703] Fix | Delete
}
[704] Fix | Delete
$indexes = $this->indexes( $table_name );
[705] Fix | Delete
foreach ( $indexes as $idx ) {
[706] Fix | Delete
if ( $idx['name'] === $index_name ) {
[707] Fix | Delete
return true;
[708] Fix | Delete
}
[709] Fix | Delete
}
[710] Fix | Delete
[711] Fix | Delete
return false;
[712] Fix | Delete
}
[713] Fix | Delete
[714] Fix | Delete
/**
[715] Fix | Delete
* Returns all indexes of a table.
[716] Fix | Delete
*
[717] Fix | Delete
* @param string $table_name The table name.
[718] Fix | Delete
*
[719] Fix | Delete
* @return array
[720] Fix | Delete
*/
[721] Fix | Delete
public function indexes( $table_name ) {
[722] Fix | Delete
$sql = \sprintf( 'SHOW KEYS FROM %s', $this->identifier( $table_name ) );
[723] Fix | Delete
$result = $this->select_all( $sql );
[724] Fix | Delete
$indexes = [];
[725] Fix | Delete
foreach ( $result as $row ) {
[726] Fix | Delete
// Skip primary.
[727] Fix | Delete
if ( $row['Key_name'] === 'PRIMARY' ) {
[728] Fix | Delete
continue;
[729] Fix | Delete
}
[730] Fix | Delete
$indexes[] = [
[731] Fix | Delete
'name' => $row['Key_name'],
[732] Fix | Delete
'unique' => (int) $row['Non_unique'] === 0,
[733] Fix | Delete
];
[734] Fix | Delete
}
[735] Fix | Delete
[736] Fix | Delete
return $indexes;
[737] Fix | Delete
}
[738] Fix | Delete
[739] Fix | Delete
/**
[740] Fix | Delete
* Converts a type to sql. Default options:
[741] Fix | Delete
* $limit = null, $precision = null, $scale = null
[742] Fix | Delete
*
[743] Fix | Delete
* @param string $type The native type.
[744] Fix | Delete
* @param array $options The options.
[745] Fix | Delete
*
[746] Fix | Delete
* @return string The SQL type.
[747] Fix | Delete
*
[748] Fix | Delete
* @throws Exception If invalid arguments are supplied.
[749] Fix | Delete
*/
[750] Fix | Delete
public function type_to_sql( $type, $options = [] ) {
[751] Fix | Delete
$natives = $this->native_database_types();
[752] Fix | Delete
if ( ! \array_key_exists( $type, $natives ) ) {
[753] Fix | Delete
$error = \sprintf( "Error:I dont know what column type of '%s' maps to for MySQL.", $type );
[754] Fix | Delete
$error .= "\nYou provided: {$type}\n";
[755] Fix | Delete
$error .= "Valid types are: \n";
[756] Fix | Delete
$types = \array_keys( $natives );
[757] Fix | Delete
foreach ( $types as $t ) {
[758] Fix | Delete
if ( $t === 'primary_key' ) {
[759] Fix | Delete
continue;
[760] Fix | Delete
}
[761] Fix | Delete
$error .= "\t{$t}\n";
[762] Fix | Delete
}
[763] Fix | Delete
throw new Exception( $error );
[764] Fix | Delete
}
[765] Fix | Delete
$scale = null;
[766] Fix | Delete
$precision = null;
[767] Fix | Delete
$limit = null;
[768] Fix | Delete
if ( isset( $options['precision'] ) ) {
[769] Fix | Delete
$precision = $options['precision'];
[770] Fix | Delete
}
[771] Fix | Delete
if ( isset( $options['scale'] ) ) {
[772] Fix | Delete
$scale = $options['scale'];
[773] Fix | Delete
}
[774] Fix | Delete
if ( isset( $options['limit'] ) ) {
[775] Fix | Delete
$limit = $options['limit'];
[776] Fix | Delete
}
[777] Fix | Delete
if ( isset( $options['values'] ) ) {
[778] Fix | Delete
$values = $options['values'];
[779] Fix | Delete
}
[780] Fix | Delete
$native_type = $natives[ $type ];
[781] Fix | Delete
if ( \is_array( $native_type ) && \array_key_exists( 'name', $native_type ) ) {
[782] Fix | Delete
$column_type_sql = $native_type['name'];
[783] Fix | Delete
}
[784] Fix | Delete
else {
[785] Fix | Delete
return $native_type;
[786] Fix | Delete
}
[787] Fix | Delete
if ( $type === 'decimal' || $type === 'float' ) {
[788] Fix | Delete
// Ignore limit, use precison and scale.
[789] Fix | Delete
if ( $precision === null && \array_key_exists( 'precision', $native_type ) ) {
[790] Fix | Delete
$precision = $native_type['precision'];
[791] Fix | Delete
}
[792] Fix | Delete
if ( $scale === null && \array_key_exists( 'scale', $native_type ) ) {
[793] Fix | Delete
$scale = $native_type['scale'];
[794] Fix | Delete
}
[795] Fix | Delete
if ( $precision !== null ) {
[796] Fix | Delete
if ( \is_int( $scale ) ) {
[797] Fix | Delete
$column_type_sql .= \sprintf( '(%d, %d)', $precision, $scale );
[798] Fix | Delete
}
[799] Fix | Delete
else {
[800] Fix | Delete
$column_type_sql .= \sprintf( '(%d)', $precision );
[801] Fix | Delete
}
[802] Fix | Delete
}
[803] Fix | Delete
elseif ( $scale ) {
[804] Fix | Delete
throw new Exception( "Error adding $type column: precision cannot be empty if scale is specified" );
[805] Fix | Delete
}
[806] Fix | Delete
}
[807] Fix | Delete
elseif ( $type === 'enum' ) {
[808] Fix | Delete
if ( empty( $values ) ) {
[809] Fix | Delete
throw new Exception( 'Error adding enum column: there must be at least one value defined' );
[810] Fix | Delete
}
[811] Fix | Delete
else {
[812] Fix | Delete
$column_type_sql .= \sprintf(
[813] Fix | Delete
"('%s')",
[814] Fix | Delete
\implode( "','", \array_map( [ $this, 'quote_string' ], $values ) )
[815] Fix | Delete
);
[816] Fix | Delete
}
[817] Fix | Delete
}
[818] Fix | Delete
// Not a decimal column.
[819] Fix | Delete
if ( $limit === null && \array_key_exists( 'limit', $native_type ) ) {
[820] Fix | Delete
$limit = $native_type['limit'];
[821] Fix | Delete
}
[822] Fix | Delete
if ( $limit ) {
[823] Fix | Delete
$column_type_sql .= \sprintf( '(%d)', $limit );
[824] Fix | Delete
}
[825] Fix | Delete
[826] Fix | Delete
return $column_type_sql;
[827] Fix | Delete
}
[828] Fix | Delete
[829] Fix | Delete
/**
[830] Fix | Delete
* Adds column options.
[831] Fix | Delete
*
[832] Fix | Delete
* @param string $type The native type.
[833] Fix | Delete
* @param array $options The options.
[834] Fix | Delete
*
[835] Fix | Delete
* @return string The SQL statement for the column options.
[836] Fix | Delete
*
[837] Fix | Delete
* @throws Exception If invalid arguments are supplied.
[838] Fix | Delete
*/
[839] Fix | Delete
public function add_column_options( $type, $options ) {
[840] Fix | Delete
$sql = '';
[841] Fix | Delete
if ( ! \is_array( $options ) ) {
[842] Fix | Delete
return $sql;
[843] Fix | Delete
}
[844] Fix | Delete
if ( \array_key_exists( 'unsigned', $options ) && $options['unsigned'] === true ) {
[845] Fix | Delete
$sql .= ' UNSIGNED';
[846] Fix | Delete
}
[847] Fix | Delete
if ( \array_key_exists( 'character', $options ) ) {
[848] Fix | Delete
$sql .= \sprintf( ' CHARACTER SET %s', $this->identifier( $options['character'] ) );
[849] Fix | Delete
}
[850] Fix | Delete
if ( \array_key_exists( 'collate', $options ) ) {
[851] Fix | Delete
$sql .= \sprintf( ' COLLATE %s', $this->identifier( $options['collate'] ) );
[852] Fix | Delete
}
[853] Fix | Delete
if ( \array_key_exists( 'auto_increment', $options ) && $options['auto_increment'] === true ) {
[854] Fix | Delete
$sql .= ' auto_increment';
[855] Fix | Delete
}
[856] Fix | Delete
if ( \array_key_exists( 'default', $options ) && $options['default'] !== null ) {
[857] Fix | Delete
if ( $this->is_sql_method_call( $options['default'] ) ) {
[858] Fix | Delete
throw new Exception( 'MySQL does not support function calls as default values, constants only.' );
[859] Fix | Delete
}
[860] Fix | Delete
if ( \is_int( $options['default'] ) ) {
[861] Fix | Delete
$default_format = '%d';
[862] Fix | Delete
}
[863] Fix | Delete
elseif ( \is_bool( $options['default'] ) ) {
[864] Fix | Delete
$default_format = "'%d'";
[865] Fix | Delete
}
[866] Fix | Delete
elseif ( $options['default'] === 'CURRENT_TIMESTAMP' ) {
[867] Fix | Delete
$default_format = '%s';
[868] Fix | Delete
}
[869] Fix | Delete
else {
[870] Fix | Delete
$default_format = "'%s'";
[871] Fix | Delete
}
[872] Fix | Delete
$default_value = \sprintf( $default_format, $options['default'] );
[873] Fix | Delete
$sql .= \sprintf( ' DEFAULT %s', $default_value );
[874] Fix | Delete
}
[875] Fix | Delete
if ( \array_key_exists( 'null', $options ) ) {
[876] Fix | Delete
if ( $options['null'] === false || $options['null'] === 'NO' ) {
[877] Fix | Delete
$sql .= ' NOT NULL';
[878] Fix | Delete
}
[879] Fix | Delete
elseif ( $type === 'timestamp' ) {
[880] Fix | Delete
$sql .= ' NULL';
[881] Fix | Delete
}
[882] Fix | Delete
}
[883] Fix | Delete
if ( \array_key_exists( 'comment', $options ) ) {
[884] Fix | Delete
$sql .= \sprintf( " COMMENT '%s'", $this->quote_string( $options['comment'] ) );
[885] Fix | Delete
}
[886] Fix | Delete
if ( \array_key_exists( 'extra', $options ) ) {
[887] Fix | Delete
$sql .= \sprintf( ' %s', $this->quote_string( $options['extra'] ) );
[888] Fix | Delete
}
[889] Fix | Delete
if ( \array_key_exists( 'after', $options ) ) {
[890] Fix | Delete
$sql .= \sprintf( ' AFTER %s', $this->identifier( $options['after'] ) );
[891] Fix | Delete
}
[892] Fix | Delete
[893] Fix | Delete
return $sql;
[894] Fix | Delete
}
[895] Fix | Delete
[896] Fix | Delete
/**
[897] Fix | Delete
* Returns a list of all versions that have been migrated.
[898] Fix | Delete
*
[899] Fix | Delete
* @return string[] The version numbers that have been migrated.
[900] Fix | Delete
*/
[901] Fix | Delete
public function get_migrated_versions() {
[902] Fix | Delete
$result = $this->select_all( \sprintf( 'SELECT version FROM %s', $this->get_schema_version_table_name() ) );
[903] Fix | Delete
return \array_column( $result, 'version' );
[904] Fix | Delete
}
[905] Fix | Delete
[906] Fix | Delete
/**
[907] Fix | Delete
* Adds a migrated version.
[908] Fix | Delete
*
[909] Fix | Delete
* @param string $version The version.
[910] Fix | Delete
*
[911] Fix | Delete
* @return bool Whether or not the version was succesfully set.
[912] Fix | Delete
*/
[913] Fix | Delete
public function add_version( $version ) {
[914] Fix | Delete
$sql = \sprintf( "INSERT INTO %s (version) VALUES ('%s')", $this->get_schema_version_table_name(), $version );
[915] Fix | Delete
[916] Fix | Delete
return $this->execute_ddl( $sql );
[917] Fix | Delete
}
[918] Fix | Delete
[919] Fix | Delete
/**
[920] Fix | Delete
* Removes a migrated version.
[921] Fix | Delete
*
[922] Fix | Delete
* @param string $version The version.
[923] Fix | Delete
*
[924] Fix | Delete
* @return bool Whether or not the version was succesfully removed.
[925] Fix | Delete
*/
[926] Fix | Delete
public function remove_version( $version ) {
[927] Fix | Delete
$sql = \sprintf( "DELETE FROM %s WHERE version = '%s'", $this->get_schema_version_table_name(), $version );
[928] Fix | Delete
[929] Fix | Delete
return $this->execute_ddl( $sql );
[930] Fix | Delete
}
[931] Fix | Delete
[932] Fix | Delete
/**
[933] Fix | Delete
* Returns a message displaying the current version
[934] Fix | Delete
*
[935] Fix | Delete
* @return string
[936] Fix | Delete
*/
[937] Fix | Delete
public function __toString() {
[938] Fix | Delete
return self::class . ', version ' . $this->version;
[939] Fix | Delete
}
[940] Fix | Delete
[941] Fix | Delete
/**
[942] Fix | Delete
* Returns an index name.
[943] Fix | Delete
*
[944] Fix | Delete
* @param string $table_name The table name.
[945] Fix | Delete
* @param string $column_name The column name.
[946] Fix | Delete
*
[947] Fix | Delete
* @return string The index name.
[948] Fix | Delete
*/
[949] Fix | Delete
private function get_index_name( $table_name, $column_name ) {
[950] Fix | Delete
$name = \preg_replace( '/\\W/', '_', $table_name );
[951] Fix | Delete
$name = \preg_replace( '/\\_{2,}/', '_', $name );
[952] Fix | Delete
// If the column parameter is an array then the user wants to create a multi-column index.
[953] Fix | Delete
if ( \is_array( $column_name ) ) {
[954] Fix | Delete
$column_str = \implode( '_and_', $column_name );
[955] Fix | Delete
}
[956] Fix | Delete
else {
[957] Fix | Delete
$column_str = $column_name;
[958] Fix | Delete
}
[959] Fix | Delete
$name .= \sprintf( '_%s', $column_str );
[960] Fix | Delete
return $name;
[961] Fix | Delete
}
[962] Fix | Delete
[963] Fix | Delete
/**
[964] Fix | Delete
* Returns the type of a query.
[965] Fix | Delete
*
[966] Fix | Delete
* @param string $query The query to run.
[967] Fix | Delete
*
[968] Fix | Delete
* @return int The query type.
[969] Fix | Delete
*/
[970] Fix | Delete
private function determine_query_type( $query ) {
[971] Fix | Delete
$query = \strtolower( \trim( $query ) );
[972] Fix | Delete
$match = [];
[973] Fix | Delete
\preg_match( '/^(\\w)*/i', $query, $match );
[974] Fix | Delete
$type = $match[0];
[975] Fix | Delete
switch ( $type ) {
[976] Fix | Delete
case 'select':
[977] Fix | Delete
return Constants::SQL_SELECT;
[978] Fix | Delete
case 'update':
[979] Fix | Delete
return Constants::SQL_UPDATE;
[980] Fix | Delete
case 'delete':
[981] Fix | Delete
return Constants::SQL_DELETE;
[982] Fix | Delete
case 'insert':
[983] Fix | Delete
return Constants::SQL_INSERT;
[984] Fix | Delete
case 'alter':
[985] Fix | Delete
return Constants::SQL_ALTER;
[986] Fix | Delete
case 'drop':
[987] Fix | Delete
return Constants::SQL_DROP;
[988] Fix | Delete
case 'create':
[989] Fix | Delete
return Constants::SQL_CREATE;
[990] Fix | Delete
case 'show':
[991] Fix | Delete
return Constants::SQL_SHOW;
[992] Fix | Delete
case 'rename':
[993] Fix | Delete
return Constants::SQL_RENAME;
[994] Fix | Delete
case 'set':
[995] Fix | Delete
return Constants::SQL_SET;
[996] Fix | Delete
default:
[997] Fix | Delete
return Constants::SQL_UNKNOWN_QUERY_TYPE;
[998] Fix | Delete
}
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function