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

Переписувати код в PHP 7.0 і вище

Translated500 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

Модулі для сайта на Laravel

4000 UAH

Модуль доставки та оплати для сайтуhttps://novabook.top/ (Botble CMS / Laravel) Додати в checkout зручні способи доставки та оплати (включаючи розстрочку), за схожим стилем і зручністю подібно до сайту mirson ua.Доставка (обов’язково) Нова Пошта Відділення Поштомат Кур’єр на…

Javascript та TypescriptPHP ∙ 9 годин 13 хвилин тому ∙ 18 ставок

Потрібна інтеграція KeyCRM → ПРРО Кашалот

Потрібно налаштувати інтеграцію між KeyCRM та ПРРО Кашалот. При оформленні замовлення в KeyCRM дані мають автоматично передаватись у Кашалот: • інформація про замовлення • товари, номенклатура • ціни • кількість Детальніше в особисті.

CMSPHP ∙ 2 дні 8 годин тому ∙ 28 ставок

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

Розробка двох спеціалізованих сайтів з продажу запчастинЗагальна інформація Потрібно розробити два спеціалізовані сайти: Запчастини для квадроциклів, UTV, SSV та іншої подібної техніки. Запчастини для спеціальної техніки. Існуючий сайт компанії: https://kiaparts.com.ua/ Нові…

PHPВеб-програмування ∙ 4 дні 15 годин тому ∙ 77 ставок

Розробка веб-сайту WordPress

1002 UAH

Шукаємо виконавця під розробку кастомного сайту на wordpress для ювелірного магазину. Першим етапом буде консультація.

CMSPHP ∙ 7 днів 7 годин тому ∙ 75 ставок

Парсер expireddomains.net

5000 UAH

Потрібен парсер expireddomains.net на сайті потрібно спочатку залогінитись, проблема в тому що блочить ІР при намаганні парсити дані, потрібно парсити тематичні домени по списку ключових слів, хто не впевнений в своїх силах не пишіть

PHPВеб-програмування ∙ 9 днів 15 годин тому ∙ 53 ставки

Замовник
Проєкт опублікований
4 роки тому
55 переглядів