Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объектно-ориентированное программирование
 
 автор: mindless   (10.01.2007 в 22:35)   письмо автору
 
 

приведи пожалуйста простой пример в котором происходилп какая нибудь полезная функция для работы с БД с использованием ООП

   
 
 автор: Sergey89   (10.01.2007 в 22:44)   письмо автору
 
   для: mindless   (10.01.2007 в 22:35)
 

PEAR::DB

   
 
 автор: mindless   (10.01.2007 в 22:55)   письмо автору
 
   для: Sergey89   (10.01.2007 в 22:44)
 

спасибо... там не очень наглядно

   
 
 автор: Sergey89   (10.01.2007 в 23:04)   письмо автору
 
   для: mindless   (10.01.2007 в 22:55)
 

Очень даже наглядно
<?php
    
//...
    
function connect($dsn$persistent false)
    {
        if (!
PEAR::loadExtension('mysql')) {
            return 
$this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);
        }

        
$this->dsn $dsn;
        if (
$dsn['dbsyntax']) {
            
$this->dbsyntax $dsn['dbsyntax'];
        }

        
$params = array();
        if (
$dsn['protocol'] && $dsn['protocol'] == 'unix') {
            
$params[0] = ':' $dsn['socket'];
        } else {
            
$params[0] = $dsn['hostspec'] ? $dsn['hostspec']
                         : 
'localhost';
            if (
$dsn['port']) {
                
$params[0] .= ':' $dsn['port'];
            }
        }
        
$params[] = $dsn['username'] ? $dsn['username'] : null;
        
$params[] = $dsn['password'] ? $dsn['password'] : null;

        if (!
$persistent) {
            if (isset(
$dsn['new_link'])
                && (
$dsn['new_link'] == 'true' || $dsn['new_link'] === true))
            {
                
$params[] = true;
            } else {
                
$params[] = false;
            }
        }
        if (
version_compare(phpversion(), '4.3.0''>=')) {
            
$params[] = isset($dsn['client_flags'])
                        ? 
$dsn['client_flags'] : null;
        }

        
$connect_function $persistent 'mysql_pconnect' 'mysql_connect';

        
$ini ini_get('track_errors');
        
$php_errormsg '';
        if (
$ini) {
            
$this->connection = @call_user_func_array($connect_function,
                                                      
$params);
        } else {
            
ini_set('track_errors'1);
            
$this->connection = @call_user_func_array($connect_function,
                                                      
$params);
            
ini_set('track_errors'$ini);
        }

        if (!
$this->connection) {
            if ((
$err = @mysql_error()) != '') {
                return 
$this->raiseError(DB_ERROR_CONNECT_FAILED,
                                         
nullnullnull
                                         
$err);
            } else {
                return 
$this->raiseError(DB_ERROR_CONNECT_FAILED,
                                         
nullnullnull,
                                         
$php_errormsg);
            }
        }

        if (
$dsn['database']) {
            if (!@
mysql_select_db($dsn['database'], $this->connection)) {
                return 
$this->mysqlRaiseError();
            }
            
$this->_db $dsn['database'];
        }

        return 
DB_OK;
    }
    
//...
?>

   
 
 автор: Temnovit   (10.01.2007 в 23:25)   письмо автору
 
   для: mindless   (10.01.2007 в 22:35)
 


<?
 
class mysql_database {

    protected 
$db_idnt//resource podklu4enija ka baze dannih
    
protected $errors = array();  //massiv hranit vse o6ibki prozi6ed6ije v baze za vremja raboti skripta

   // -------------- kostruktor i destruktor -----------------------------------

   //konstruktor - Vizivajetsa pri sozdanii peremennoj podklu4ajetsa k baze dannih
   //v slu4ae windows podklu4ajetysa s defoltovimi parametrami, a v slu4aje UNIX, s zadannimi
    
public function __construct($host_name$db_name$db_login$db_pass) {
        
//podklu4ajemsa k baze i v slu4ae o6ibki, zapisivajem ee v log
        
if ( @getenv('COMSPEC') ) //rabotajem v windows
          
$this->db_idnt mysql_connect('localhost''root''') or $errors[] = mysql_error();
        else                   
// v UNIX
          
$this->db_idnt mysql_connect($host_name$db_login$db_pass) or $errors[] = mysql_error();

        
//sozdajem bazu dannih esli ee e6o net
        
$q "CREATE DATABASE IF NOT EXISTS $db_name";
        
$this->mysql_qw($q) or $errors[] = mysql_error();
        
mysql_select_db($db_name$this->db_idnt)or $errors[] = mysql_error();
        
mysql_query ("set names 'cp1251'");                    //podderkzka russkoj kodirovki
    
}

    
//destruktor - otklu4ajetsa ot bazi dannih
    
public function __destruct() {
        @
mysql_close($this->db_idnt);
    }

    
//--------------- funkcii raboti s bazoj dannih ----------------------------

    
public function mysql_qw() {
      
// Получаем все аргументы функции.
      
$args func_get_args();
      
// Если первый параметр имеет тип "ресурс", то это ID соединения.
      
$conn $this->db_idnt;
      
// Формируем запрос по шаблону.
      
$query call_user_func_array("mysql_make_qw"$args);
      
// Вызываем SQL-функцию.
      
return mysql_query($query$conn);
   }



  
//funkcija pe4atajet spisok  vseh o6ibok proizo6ed6ih po hodu raboti skripta
  
public function print_errors() {
       foreach (
$this->errors as $no=>$err)
           echo 
"$no$err<br>";
  }

  
//peredelivajet result set v massiv
  
public function array_from_result($r) {
     for (
$data = array(); $row mysql_fetch_assoc($r); $data[] = $row);
     return 
$data;
  }


}

?>

   
 
 автор: cheops   (11.01.2007 в 13:52)   письмо автору
 
   для: mindless   (10.01.2007 в 22:35)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=161.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования