PHP в деталях



         

Объектно-ориентированное программирование. Часть 3. Абстрактные классы БД - часть 3


[].

В отличие от предыдущих классов здесь запрос отправляется в базу конструктором класса запроса. В одном из классов нашел ошибку ? вместо str_replace используется ereg_replace.

[] (Database independent object wrapper).

А вот этим классом настоятельно не советую пользоваться. Разделение на разные базы сделано самым глупым способом ? если переменная с типом базы, и такая конструкция:

if ($database_type==1) {

  ...

  }

elseif ($database_type==2) {

  ...

  };

А в ней ? самое страшное. Попробуйте найти это сами.

if ($database_type==2) {

  $this->my_temp_resultID = mysql_query($someSQL, $this->my_connection);

  $this->my_temp_result_object->numrows = mysql_num_rows($this->my_temp_resultID);

  $this->my_temp_result_object->numcols = mysql_num_fields($this->my_temp_resultID);

  // fill column_names from resultset

  for ($j=0; $j < $this->my_temp_result_object->numcols; $j++) {

    $this->my_temp_result_object->column_name[$j] = mysql_fieldname($this->my_temp_resultID, $j);

    };

  // fill data elements from resultset

  for ($i=0; $i < $this->my_temp_result_object->numrows; $i++) {

    $x = mysql_fetch_row($this->my_temp_resultID);

    for ($j=0; $j < $this->my_temp_result_object->numcols; $j++) {

      $this->my_temp_result_object->element[$i][$j] = $x[$j];

      };

    };

  return $this->my_temp_result_object;

  mysql_free_result($this->my_temp_resultID);

  };

Перед return есть два вложенных цикла, которые тупо берут данные из базы и скидывают их в массив. Конечно же, потом с этим массивом делать можно что угодно, "хоть веревки вейте, хоть ездовую собаку делайте", но это стоит дополнительной занимаемой памяти.




Содержание  Назад  Вперед