Autor Zpráva
rad
Profil *
pokousim se vytfvorit class pro pripojeni k databazi a zakladnim vecem pro select update insert atd
budu rad za kazkou radu a krtitiku tady to je


<?php      

class database {   


    private $datebase;
    private $server;
    private $username;
    private $password;              
    private $result;
    private $select;
    public $connect;
    public $lastquery;
    public $count=0;
    public $message;
    
      
  public function errorconnect()
    {
  	$emailTo = 'rad@gmail.com'; //emailto moi
  	$head='';
    $email = 'rad@gmail.com';        
		$subject = 'problem with select BD';
		
    $body = "<p>ERROR</p><p>".mysql_error()."</p>";
    
    $head.= "MIME-Version: 1.0\r\n";
    $head.= "Content-Type: text/html; charset=\"utf-8\"\r\n";
    $head.= "Content-Transfer-Encoding: base64\r\n";		
		$head.= 'From: Portfolio <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;				  
	
    mail($emailTo, $subject, "<h1>$body<h1>", $head);   
                    
   }    
   
    
 function __construct($database='portfoliox', $server='localhost', $username='root', $password='')
{                    
  $this->connect = mysql_connect($server, $username, $password);
    
  if ($this->connect===FALSE)       
  { 
  $this->errorconnect();         
  }
            
  else 
  { 
         
  $this->select=mysql_select_db($database, $this->connect);          
    
  if ($this->select===FALSE)    
   
        { 
         $this->errorconnect();  
        }                      
        else
        {   
        mysql_query("SET CHARACTER SET utf8"); //utf8
    
        mysql_query("SET NAMES utf8 "); 		   //utf8  
        }
     } 
    }   
         
    public function close()
    
    {
     mysql_close($this->connect);
    }


    public function query($query) 
     
    {
    
    $this->lastquery =  filter_var($query, FILTER_SANITIZE_STRING); 
   
    $this->count++;             
    $this->result = mysql_query($query, $this->connect); 
    
    if ($this->result===FALSE)
    { 
     $this->errorconnect();      
    }               
    } 
            
                 
    public function num_rows()    
    {  
        return @mysql_num_rows($this->result);  
    }

    public function fetch_array(&$result){

        return @mysql_fetch_array($this->result);

    }

    public function fetch_assoc()
    {

        return @mysql_fetch_assoc($this->result);
        
    
    }
    
    public function insert_id(){

        return @mysql_insert_id();

    }

    public function escape($string)
    {
    if(!get_magic_quotes_gpc()) {                 //if cest ok faire rien si non faire mysql_real_escape_string function
    return mysql_real_escape_string($string);
    }
    else {
	  return $string;    
    }
    }
    
    public function strip (&$string)    
    {
    return stripslashes($string);
    
    }

    public function result($query, $column, $id=0){

    return mysql_result($query, $id, $column);

    } 
           
     public function mysql_insert($table, $inserts) 
  
  {
    $values = array_map('mysql_real_escape_string', array_values($inserts));
    $keys = array_keys($inserts);        
    return mysql_query('INSERT INTO `'.$table.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');  
    $message.= "<p>insert ok</p>";
  }
  
  
     public function __destruct() 
   {
   $this->close();
   }
}
?>         
Alphard
Profil
Mail by měla sestavovat samostatná třída, nesouvisí s db.
Blbě se to čte, nemůžete to pěkně formátovat? Stačí použít funkce editoru.
K čemu potřebujete strip() nevím. Jedině pokud je aktivní get_magic_quotes_gpc, mělo by se neutralizovat a pak použít escape funkci dané databáze.
public function fetch_array(&$result){
        return @mysql_fetch_array($this->result);
}
Jaký je účel parametru?
Nechce se mi to moc zkoumat, celkově se mi zdá, že ta třída moc užitečná nebude...
jsim
Profil
oop není obalení funkcí třídou ... stáhni si link a prohlídni si to ...
rad
Profil *
diky za rady
jeste k funkci email zkousel jsem to testovat a vzdycky se mi mail posle dvakrat kde je chyba ?
__construct
Profil
rad:
• namiesto tej metódy errorconnect vyhadzuj výnimky
• z akého dôvodu používaš „shut-up“ operátor?
• na nastavovanie znakovej sady sa má používať mysql_set_charset
• defaultné prihlasovacie údaje by som nenechával v konštruktore
rad: To nie je dotaz, ale funkcia v PHP
rad
Profil *
diky

__construct takze takto ?
mysql_query("mysql_set_charset('utf8');"); //utf8

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: