Вход Регистрация
Файл: test.masteram.us/games/pit/img/37.php
Строк: 93
<?
include_once '../../sys/inc/start.php';
include_once 
'../../sys/inc/compress.php';
include_once 
'../../sys/inc/sess.php';
include_once 
'../../sys/inc/home.php';
include_once 
'../../sys/inc/settings.php';
include_once 
'../../sys/inc/db_connect.php';
include_once 
'../../sys/inc/ipua.php';
include_once 
'../../sys/inc/fnc.php';
include_once 
'../../sys/inc/adm_check.php';
include_once 
'../../sys/inc/user.php';

$set['title']='MySQL запрос';
include_once 
'../../sys/inc/thead.php';
title();

if (isset(
$_GET['set']) && $_GET['set']=='set' && isset($_POST['query']))
{
$sql=trim($_POST['query']);



if (
$conf['phpversion']==5)
{

/**
 * Простой парсер SQL-дампов для извлечения запросов
 *
 * Использование:
 *   SQLParser::getQueriesFromFile('Имя файла')  - Извлечение запросов из файла
 *   SQLParser::getQueries('SQL-дамп')           - Извлечение запросов из строки
 *
 *   Обе функции возвращают массив из запросов. Пустые запросы опускаются.
 *
 * Лицензия:
 *   Это свободный код, используйте его на свой страх и риск.
 *   Автор не несёт никакой ответственности! :)
 *
 * @author Прибора Антон Николаевич (http://anton-pribora.ru)
 * @copyright (c) Прибора Антон Николаевич, 2008-11-07
 */


/**
 * Парсер SQL-запросов
 *
 */
class SQLParser
{
    
/**
     * Выборка SQL-запросов из файла
     *
     * @param string $file
     * @return array
     */
    
static public function getQueriesFromFile$file )
    {
        return 
self::getQueriesfile_get_contents($file) );
    }

    
/**
     * Разбор SQL-строки на запросы
     *
     * @param string $sql
     * @return array
     */
    
static public function getQueries$sql )
    {
        
$queries  = array();
        
$strlen   strlen($sql);
        
$position 0;
        
$query    '';

        for ( ; 
$position $strlen; ++$position )
        {
            
$char  $sql$position };

            switch ( 
$char )
            {
                case 
'-':
                    if ( 
substr($sql$position3) !== '-- ' )
                    {
                        
$query .= $char;
                        break;
                    }

                case 
'#':
                    while ( 
$char !== "r" && $char !== "n" && $position $strlen )
                        
$char $sql{ ++$position };
                    break;

                case 
'`':
                case 
''':
                case '"':
                    
$quote  = $char;
                    
$query .= $quote;

                    while ( 
$position < $strlen - 1 )
                    {
                        
$char = $sql{ ++$position };

                        if ( 
$char === '\' )
                        {
                            
$query .= $char;

                            if ( 
$position < $strlen - 1 )
                            {
                                
$char   = $sql{ ++$position };
                                
$query .= $char;

                                if ( 
$position < $strlen - 1 ) $char = $sql{ ++$position };
                            }
                            else
                            {
                                break;
                            }
                        }

                        if ( 
$char === $quote ) break;

                        
$query .= $char;
                    }

                    
$query .= $quote;
                    break;

                case ';':
                    
$query = trim($query);
                    if ( 
$query ) $queries[] = $query;
                    
$query     = '';
                    break;

                default:
                    
$query .= $char;
                    break;
            }
        }

        
$query = trim( $query );
        if ( 
$query ) $queries[] = $query;

        return 
$queries;
    }
}




$sql=SQLParser::getQueries($sql); // при помощи парсера запросы разбиваются точнее, но работает это только в php5
}
else
{
$sql=split(";(n|r)*",$sql);
}




$k_z=0; $k_z_ok=0;
for (
$i=0;$i<count($sql);$i++)
{
if (
$sql[$i]!=''){
$k_z++;
if(mysql_query(
$sql[$i]))
{
$k_z_ok++;
}}}
if (
$k_z_ok>0)
{
if (
$k_z_ok==1 && $k_z=1)
msg("
Запрос успешно выполнен");
else
msg("
Выполнено $k_z_ok запросов из $k_z");



admin_log('Админка','MySQL',"
Выполнено $k_z_ok запрос(ов)");
}
}

err();
aut();


echo "
<form method="post" action="?set=set">n";
echo "
<textarea name="query" ></textarea><br />n";
echo "
<input value="Выполнить" type="submit" />n";
echo "
</form>n";

if (user_access('adm_panel_show')){
echo "
<div class='foot'>n";
echo "
&laquo;<a href='/adm_panel/'>В админку</a><br />n";
echo "
</div>n";
}
include_once '../../sys/inc/tfoot.php';
?>
Онлайн: 0
Реклама