Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Переписать код под php 7.0 и выше

500 UAH
PHP

Отзыв заказчика о сотрудничестве с Анатолием Демченко

Качество
Профессионализм
Стоимость
Контактность
Сроки

Спасибо. Очень быстро. Буду ещё обращаться.

Отзыв фрилансера о сотрудничестве с Алексеем Митрошиным

Оплата
Постановка задачи
Четкость требований
Контактность

С Алексеем приятно иметь дело - все, что нужно, предоставил. Быстро проверил и оплатил. Рекомендую!

  • Алексей Митрошин
    9 февраля 2022, 13:42 |

    <?


    class DBI


    {


        ## Class properties description


        var $dbh,      # database link handler


            $sth,      # resource handler


            $errno,    # database error number


            $errmsg,   # database error message


            $host,     # host


            $user,     # user name


            $pass,     # password


            $database, # database name


            $q,        # query text


            $log_file = '',  # Log FileName, if empty - no loging mysqlog.txt


            $time_limit = 1.5;       # Log only querys above this time





        #@@@ PUBLIC METHODS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@



        ### Connect to server and select database



        function connect($host="",$user="",$pass="", $database="")


        {



          error_reporting(!E_WARNING);



          $this->dbh=mysql_connect($host,$user,$pass);# or $this->GetError("Connection failed");


          if (!$this->dbh){


            echo "На сервере ведутся технические работы. Извините за доставленное неудобство.";


            exit;

            return false;


          }else{


              error_reporting(E_ALL & ~E_NOTICE);

        

              mysql_select_db($database) or $this->GetError("Database selection failed");


              $this->database = $database;

              return true;

          }




        }




        ## set auto_recoding from cp1251 to koi8ukr


        function cp1251_koi8(){


         $this->query("set option character set cp1251_koi8");


        }



        ## set auto_recoding to default

        function to_default(){

         $this->query("set option character set DEFAULT");

        }

        ### Send query


        function query($query="", $debug_query = 0){

            global $debug_query;

            if(!$query){


              echo "DB class error: [No query parameter]";


              $this->close();


              exit;

            }


            if($debug_query){


              //echo "<pre>".$query."</pre>";

              echo $query."<br>---<br>";


            }


            $this->q = $query;


            $page_parse_time_start = microtime();


            if($query)

             $this->sth =  mysql_query($query, $this->dbh) or $this->GetError("Query error");




            if ($_SERVER['REQUEST_URI'] and $this->log_file)

               $tmp = explode('.',$_SERVER['REQUEST_URI']);


            if($this->log_file && !in_array(strtolower($tmp[count($tmp)-1]),array('jpg', 'png', 'gif'))){

              $time_start = explode(' ', $page_parse_time_start);

              $time_end = explode(' ', microtime());

              $time_int = $time_end[1] + $time_end[0] - ($time_start[1] + $time_start[0]);

              if($time_int > $this->time_limit){

                $parse_time = number_format($time_int, 3);


                ###### лог запросов в файл #########

                $query = ereg_replace("\r", "", $query);

                $query = ereg_replace("\n", " ", $query);

                global $ROOT_DIRECTORY, $HTTP_AFTER, $domain;

                $fp = fopen($ROOT_DIRECTORY.$this->log_file, "a+");

                fwrite($fp, date(" H:i:s")." ".$parse_time." ".$_SERVER['REMOTE_ADDR']." ".($domain ? $domain.'.'.$HTTP_AFTER : $_SERVER['SERVER_NAME']).$_SERVER['REQUEST_URI']." ".session_id()." ".$query."\n");

                fclose($fp);

                ####################################

              }

            }

            return $this->sth;

        }



        ### Return number of result rows of last SELECT QUERY


        function num_rows($linkno=0)




         //$linkno - number of link resource (default = 0)


        {


            if (!$this->sth && !$linkno){  ## IF NO RESOURCE


                echo "No performed SELECT query: [Invalid resource link]";


                exit;


            }


            $num=mysql_num_rows($linkno ? $linkno : $this->sth);


            return $num;


        }




        ### Return number of affected rows of performed query


        function affected_rows()


         //$linkno - number of link resource (default = 0)


        {


            $num=mysql_affected_rows();


            return $num;


        }






        ### Fetch row as array


        function fetch_row($linkno=0)

             //$linkno - number of link resource (default = 0)


        {

          //echo $linkno;

          return mysql_fetch_row($linkno ? $linkno : $this->sth);


        }


        ### Fetch row as ac array


        function fetch_array($linkno=0)

             //$linkno - number of link resource (default = 0)


        {

          return mysql_fetch_array($linkno ? $linkno : $this->sth);


        }




        ### Fetch row as hash


        function fetch_hash($linkno=0)


             //$linkno - number of link resource (default = 0)


        {


          return mysql_fetch_assoc($linkno ? $linkno : $this->sth);


        }








        ### Data seek; Move result pointer to the row $row, by default 0


        function seek($row=0, $linkno=0)


         //$linkno - number of link resource (default = 0)


        {


          return mysql_data_seek($linkno ? $linkno : $this->sth,$row);


        }






        ### Fetch field


        function fetch_field($row=0,$field=0, $linkno=0){


         //$linkno - number of link resource (default = 0)


          $flag=true;


            if ($row<0 || $row>=$this->num_rows()){


                //echo "Data seek error: [Invalid row offset ($row)]";


                return false;


               }




            if ( (!is_int($field)) || $field<0 || $field>=$this->num_fields()){


                echo "Field seek error: [Invalid field offset ($field)]";


             exit;


            }


            return mysql_result($linkno ? $linkno : $this->sth,$row,$field);


        }


        


        function last_id(){


         return mysql_insert_id($this->dbh);


        }




        function num_fields($linkno=0){


         //$linkno - number of link resource (default = 0)


          if (!$this->sth && !$linkno){


            echo "Fetch length error: [Invalid resource link]";


            exit;


          }


          return mysql_num_fields($linkno ? $linkno : $this->sth);


        }






        ### Close connection


        function close(){

          @mysql_close($this->dbh);

        }








        #@@@ PRIVATE METHODS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


        ##  Get database error parameters. Print error, close database connection and terminate


        function GetError($hint="")


        {


          $this->errno=mysql_errno($this->dbh);


          $this->errmsg=mysql_error($this->dbh);


          $this->close();


          $this->q = eregi_replace("select ", "<b>SELECT</b> ", $this->q);

          $this->q = eregi_replace("update ", "<b>UPDATE</b> ", $this->q);

          $this->q = eregi_replace("insert ", "<b>INSERT</b> ", $this->q);

          $this->q = eregi_replace(" from ", "\n<b>FROM</b> ", $this->q);

          $this->q = eregi_replace(" left ", "\n<b>LEFT</b> ", $this->q);

          $this->q = eregi_replace(" right ", "\n<b>RIGHT</b> ", $this->q);

          $this->q = eregi_replace(" join ", " <b>JOIN</b> ", $this->q);

          $this->q = eregi_replace(" where ", "\n<b>WHERE</b> ", $this->q);

          $this->q = eregi_replace(" order ", "\n<b>ORDER</b> ", $this->q);

          $this->q = eregi_replace(" group ", "\n<b>GROUP</b> ", $this->q);

          $this->q = eregi_replace(" limit ", "\n<b>LIMIT</b> ", $this->q);


          $e = debug_backtrace();

          echo '<b>Error</b> in line: <b>'.$e[1]['line'].'</b> [<font color="green">'.$e[1]['file'].'</font>]';



          echo '<pre>';

          echo $this->q;

          echo '</pre>';


          echo "<b>$hint.</b> Error #",$this->errno,"<blockquote>",$this->errmsg,"</blockquote>";


          exit;


        }




    }


    ?>

  • Сергей Х.
    9 февраля 2022, 13:46 |

    Здравствуйте. Пришлите сам класс.

Актуальные фриланс-проекты в категории PHP

Аудит сайту

Задача по технической отладке OpenCart 3 (ocStore). Мне нужен фиксированный бюджет за результат, а не почасовая оплата. Список работ 1. Исправление 500 ошибки: При обновлении модификаторов возникает конфликт (вероятно, между system/seo_package.ocmod.xml и unixml.ocmod.xml).…

CMSPHP ∙ 11 часов 49 минут назад ∙ 33 ставки

Разработка единого проекта на основе доработки и объединения 4 скриптов

Здравствуйте. Нужно объединить 4 скрипта разных авторов в единое окружение. Состав - форум - видеопортал - статейный портал - доска объявлений. Сами скрипты я предоставлю. Подробное ТЗ в приложенных файлах. Прошу продумать, как за относительно небольшую стоимость можно собрать…

PHPВеб-программирование ∙ 13 часов 16 минут назад ∙ 25 ставок

Сайт на WordPress с использованием темы Kadence и Kadence Blocks.

10 000 UAH

Нам нужно создать сайт на WordPress с использованием темы Kadence и Kadence Blocks. Интернет-магазина не будет (хотя, вероятно, он будет добавлен в будущем). Нужна главная страница и несколько внутренних страниц. Графика уже готова, структура макета в основном определена,…

CMSPHP ∙ 16 часов 43 минуты назад ∙ 31 ставка

Разработка 2 SEO-ориентированных сайтов по продаже запчастей (квадроциклы и спецтехника)

Разработка двух специализированных сайтов по продаже запчастейОбщая информация Необходимо разработать два специализированных сайта: Запчасти для квадроциклов, UTV, SSV и другой подобной техники. Запчасти для специальной техники. Существующий сайт компании:…

PHPВеб-программирование ∙ 1 день 14 часов назад ∙ 67 ставок

Ищу White-label решение Букмекерской конторы под аренду

Найти и развернуть готовое white-label решение с возможностью управления линиями и коэффициентами через админ-панель. ВОЗМОЖНОСТЬ ДОБАВИТЬ ЛИНИЮ СВОЮ

PHPPython ∙ 2 дня 1 час назад ∙ 13 ставок

Заказчик
Проект опубликован
4 года назад
55 просмотров