A lightweight PHP script to search multiple MySQL tables/columns using a simple configuration.
- Resolved merge-style divergence and kept a single clean implementation.
- Kept the main optimization: one prepared query per table using OR-ed
LIKEconditions. - Added/kept relevant inline comments for setup, optimization, and output behavior.
- Added strict table/column identifier validation (
[A-Za-z0-9_]) before query construction. - Added optional
$row_identifier_columnsupport to print row id values when available. - Kept HTML escaping for safer browser output.
In php-search-all-database.php, set:
$search_keyword = 'KEYWORD';
$table_associative_array = [
'TABLE_NAME_1' => ['column_name_a', 'column_name_b'],
'TABLE_NAME_2' => ['column_name_a', 'column_name_b'],
];
$row_identifier_column = 'id'; // Set null to hide row idAlso update DB credentials inside php_search_all_database():
$db_hostname = 'DATABASE HOST NAME';
$db_username = 'DATABASE USERNAME';
$db_password = 'DATABASE PASSWORD';
$db_database_name = 'DATABASE NAME';php_search_all_database($search_keyword, $table_associative_array, $row_identifier_column);- Script remains schema-agnostic and uses
SELECT *. - Add indexes on searched columns for better performance on large datasets.
mysqli_stmt_get_result()requires mysqlnd support.