Димон
Новичок
Шустрая MySQL консолька
Надоело мне пользоваться у моего хостера спец.оболочкой для управления БД, которая постоянно "уходит в раздумья", поэтому решил набросать простенькую консольку для управления моим аккаунтом.
Функций минимум: ввод SQL-запроса, журнал историй запросов, и, естественно "экран" вывода. Кнопки 2: отправить запрос и очистить журнал историй. Запрос можно заканчивать ; ,а можно и нет.
Привязана к библиотеке mysql, поэтому комбинированные запросы и результаты процедур "не хавает". Но кому, если что понадобиться пусть пошаманит.
Надоело мне пользоваться у моего хостера спец.оболочкой для управления БД, которая постоянно "уходит в раздумья", поэтому решил набросать простенькую консольку для управления моим аккаунтом.
Функций минимум: ввод SQL-запроса, журнал историй запросов, и, естественно "экран" вывода. Кнопки 2: отправить запрос и очистить журнал историй. Запрос можно заканчивать ; ,а можно и нет.
Привязана к библиотеке mysql, поэтому комбинированные запросы и результаты процедур "не хавает". Но кому, если что понадобиться пусть пошаманит.
PHP:
<?php
// ЭМУЛЯТОР КОНСОЛИ MySQL
////////////////////////////////////////
################
# START MySQL
################
class Database
{
protected $host = 'hostname'; // имя хоста
protected $user_admin = 'username'; // логин
protected $pass_admin = 'password'; // пароль
protected $db_name = 'basename'; // имя базы для работы
public function startAdmin()
{
mysql_pconnect($this->host, $this->user_admin, $this->pass_admin) or die('Не могу установить соединение');
mysql_select_db($this->db_name) or die('Не могу выбрать базу');
}
public function query($q)
{
if(!$result = mysql_query($q))
{
echo mysql_error();
echo '<br>[QUERY] ' . $q;
}
return $result;
}
}
$db = new Database;
$db->startAdmin();
#############
# REQUEST
#############
if(isset($_POST['request']))
{
$status = 'nothing received';
$query = trim(addslashes($_POST['query']));
if(strlen($query) > 0)
{
if(substr($query, -1) == ';') $query = substr($query, 0, strlen($query) - 1);
if(($result = $db->query($query)) == true)
{
while($Data[] = mysql_fetch_row($result));
array_pop($Data);
$rows = count($Data);
$cols = count($Data[0]);
echo "<table border='0' style='border-collapse: collapse;'>";
for($i = -1; $i < $rows; $i++)
{
echo "<tr>";
for($j = 0; $j < $cols; $j++)
{
if($i == -1) echo "<td style='border: 1px dashed black; padding: 5px;'>"
. mysql_field_name($result, $j) . "</td>";
else echo "<td style='border: 1px dashed black; padding: 5px;'>"
. $Data[$i][$j] . "</td>";
}
echo "</tr>";
}
echo "</table>";
$status = 'ok';
}
else $status = 'request error';
}
else $status = 'request is empty';
echo '<br><b>' . $status . '</b>';
exit();
}
##########################################################
?>
<title>MySQL_manager</title>
<style type='text/css'>
BODY {
font: normal 13px "Lucida Console", Tahoma; background-color: #eee;
}
TABLE, TH, TD { font: normal 13px "Lucida Console", Tahoma; }
FORM { margin: 0px; }
P { margin: 0px; padding: 0px; }
.block { border: 1px solid #ccc; background-color: white; padding: 10px; }
#inputBlock { width: 80%; height: 200px; }
#displayBlock { width: 100%; height: 400px; }
#historyBlock { width: 100%; height: 177px; overflow: auto; }
</style>
<script type='text/javascript'>
function historyAdd()
{
var Value = document.forms[0].elements[0].value;
if(Value.length > 0)
{
var Str = "<span onclick='document.forms[0].elements[0].value = this.firstChild.nodeValue' style='cursor: pointer'>" + Value + "</span><br>-----";
var El = document.createElement('p');
El.innerHTML = Str;
document.getElementById('historyBlock').appendChild(El);
}
}
</script>
<table border='0' width='100%'>
<tr valign='top'>
<!--// Input block -->
<td width='70%'>
<form method='post' target='monitor' onsubmit='historyAdd()'>
<textarea id='inputBlock' class='block' name='query'></textarea>
<input type='submit' value=' GO ' name='request'>
</form>
</td>
<!--// History block -->
<td>
<div id='historyBlock' class='block'></div>
<div align='right'>
<button onclick="document.getElementById('historyBlock').innerHTML=''"> reset history </button>
</div>
</td>
</tr>
<!--// Display block -->
<tr>
<th colspan='2'>
<iframe name='monitor' id='displayBlock' class='block' frameborder='0'></iframe>
</th>
</tr>
</table>