#! /usr/bin/php <?php error_reporting(63); /*************************************** ** Title........: Search and replace utility in all MySQL db ** Filename.....: search.and.replace.php ** Author.......: Fred Radeff ** Version......: 0.0 ** Notes........: ** Last changed.: 09/24/2008 ** Last change..: ** Usage: mysqlcherchepartout.php [enter] [yourString] [enter] *************************** echo "Entrez la chaine a chercher: "; $chercher = trim(fgets(STDIN)); // lit une seule ligne depuis STDIN************/ if(strlen($chercher)<1) { echo "Usage: mysqlcherchepartout.php [enter] [yourString] [enter]\n\n"; exit; } ############ # mysql connection include("connect.inc.php"); $db=connect_db(); ############ # list all db $listedb="show databases"; $result=@mysql_query($listedb); #$result=mysql_list_dbs(); if (!$result) { exit('<p>Sql error: ' . mysql_error() . '</p>'); } #loop on db names while ($row = mysql_fetch_array($result)) { #echo '<p>' . $row[0] . '</p>'; $db=$row[0]; echo "-----------------------------------------"; echo "\n\r"; #echo "DB: "; //tests #echo $db; //tests $utiliseDB=mysql_query("USE $db"); if(!$utiliseDB) { echo "Erreur d'utilisation de la base $db: " .mysql_error(); } #search tablenames $tables = "show tables from $db"; $result_tables = mysql_query($tables); if (!$result_tables) { echo "db error, could not list tables\n"; echo 'mysql error: ' . mysql_error(); exit; } #loop on tablenames while ($rowtables = mysql_fetch_row($result_tables)) { #echo " > Table: ";//tests $latable=$rowtables[0]; $larequete="SELECT * FROM $db.$latable WHERE"; #echo "{$rowtables[0]}\n";//tests #search fieldnames (cols) $champs = mysql_query("SHOW COLUMNS FROM $latable"); if (!$champs) { echo 'Could not run query: ' . mysql_error(); exit; } if (mysql_num_rows($champs) > 0) { while ($row_champs = mysql_fetch_row($champs)) { #echo " > > Champ: "; //tests #echo "{$row_champs[0]}\n"; //tests $lechamp=$row_champs[0]; #add the field to the sql query $larequete.=" OR `$lechamp` LIKE '%$chercher%' \n"; } } #now construct the sql query $larequeteSql=str_replace("WHERE OR", "WHERE", $larequete); #exec the sql query $larequete=mysql_query($larequeteSql); if (!$larequete) { echo "sql query error\n"; echo 'mysql error: ' . mysql_error(); } if(mysql_num_rows($larequete)>0){ #echo "SQL: \n" .$larequeteSql ."\n\n"; //tests #echo "Hits: " .mysql_num_rows($larequete) ."\n"; //tests echo "--------------\nOccurrences dans base / table: " .$db ." / " .$latable ."\n\n"; $i=0; while ($i<mysql_num_rows($larequete)) { $champs2 = mysql_query("SHOW COLUMNS FROM $db.$latable"); while ($row_champs2 = mysql_fetch_row($champs2)) { $lechamp2=$row_champs2[0]; echo utf8_encode(mysql_result($larequete,$i,$lechamp2)) .";"; } $i++; } echo "\n"; } } mysql_free_result($result_tables); echo "\n\r"; } ?>