kiltum (kiltum) wrote,
kiltum
kiltum

[sscms] 4

На сегодня последнее.

Класс, который работает с mysql
  1  <?php
     2  require_once("config.php");
     3  require_once("log.php");
       
     4  class MySQL{
     5          var $link, $result,$logger;
     6
     7          function MySQL() {
     8                  // constructor
     9          $config=new Config();
    10          $conf=$config->getconfig();
    11          $this->logger=new Log();
    12          $this->link=@mysql_pconnect(
    13                                          $conf["sql"]["host"],
    14                                          $conf["sql"]["user"],
    15                                          $conf["sql"]["password"]);
    16          if(!$this->link) {
    17                  $this->logger->Add("Cannot connect to MySQL. Reason: ".mysql_error());
    18                  exit(1);
    19                  }
    20          if(!@mysql_select_db($conf["sql"]["database"],$this->link)) {
    21                  $this->logger->Add("Cannot change database. Reason: ".mysql_error());
    22                  }
    23          }
    24
    25          function query($query) {
    26                  if(!$this->result = @mysql_query($query, $this->link)) {
    27                          $this->logger->Add("Query '".$query."' failed. Reason: ".mysql_error());
    28                          }
    29          }
    30
    31          function fetch() {
    32                  return @mysql_fetch_array($this->result,MYSQL_NUM);
    33          }
    34
    35          function clean() {
    36                  return @mysql_free_result($this->result);
    37          }
    38
    39          }
    40  ?>

7-23 - конструктор, который цепляется к серверу и оставляет в $link хендл для работы с сервером. Если что не так, останавливает всё.
25-29 - запрос к серверу (в случае недачи - в лог)
31-33 - получение результатов
35-37 - приборка за собой.

По идее, гораздо лучше при невозможности соедениться возвращать код ошибки "наверх", но я пока не решил, где лучше сделать обработчик ошибок.

Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments