вторник, 13 сентября 2011
потребовалась утилита для того чтобы определить где в БД (mysql) лежит "слово или выражение"
под катом результат мучений. о морде лица речь не идет.
читать дальше
<?
function search_in_base($search,$dbname)
{
$a=mysql_query("select TABLE_NAME,COLUMN_NAME from information_schema.columns where TABLE_SCHEMA='$dbname' and DATA_TYPE in ('varchar','text') and CHARACTER_MAXIMUM_LENGTH>=".strlen($search));
while($result=mysql_fetch_row($a))
{$table=$result[0];$column=$result[1];
$query=mysql_query("select 1 from $table where lower($column) like lower('%$search%')");
if (mysql_num_rows($query)>0) {echo $table.' '.$column."\n";mysql_free_result($query);break;}
mysql_free_result($query);
}
mysql_free_result($a);}
session_name("search_in_mysql_db");
session_start();
error_reporting(E_ALL);
echo "<form method=post>user<input type=text name=dbuser value='".$_SESSION['dbuser']."'>
passwd<input type=passwd name=dbpassword>
host<input type=text name=dbhost value='".$_SESSION['dbhost']."'>
name db<input type=text name=dbname value='".$_SESSION['dbname']."'>
<input type=submit></form><br>
<form method=post><input type=text name=search size=70 value='".$_POST['search']."'><input type=submit></form>
";
@set_time_limit(0);
if (!empty ($_POST['dbhost']))$_SESSION['dbhost']=$_POST['dbhost'];
if (!empty ($_POST['dbuser']))$_SESSION['dbuser']=$_POST['dbuser'];
if (!empty ($_POST['dbpasswd']))$_SESSION['dbpasswd']=$_POST['dbpasswd'];else $_SESSION['dbpasswd']="";
if (!empty ($_POST['dbname']))$_SESSION['dbname']=$_POST['dbname'];
if (!empty($_SESSION['dbuser']) && !empty($_POST['search']) && !empty($_SESSION['dbname'])) {
mysql_connect($_SESSION['dbhost'],$_SESSION['dbuser'],$_SESSION['dbpasswd']);
mysql_select_db($_SESSION['dbname']);
search_in_base($_POST['search'],$_SESSION['dbname']);}
?>
@темы:
рабочее
Поменьше багов и прочих насекомых, побольше приятных извращений.
Анамезонный крыс, честно не в курсе. Я этими глюкавыми монстрами не пользуюсь. (пару раз смотрел в прошлом году доисторическую версию. Понял что самописный шелл с элементами rst_mysql получше будет ) Предпочитаю совершать собственные ошибки, а не мучаться на чужих. Кстати с праздником
Правда, там были некоторые недостатки, плюс сам r57 уж больно нелюбим антвирусами, а через них и хостингами, так что я просто взял и переписал его (шелл, конечо) с нуля, с тех пор им и пользуюсь
Спасибо, конечно, но подозреваю, что rst_sql скорее для тех, кто предпочитает богомерзкий ГУИ
select * from table limit 10