Autor | Zpráva | ||
---|---|---|---|
rad Profil * |
#1 · Zasláno: 20. 2. 2011, 16:55:20
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 |
#2 · Zasláno: 22. 2. 2011, 14:16:44
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); } Nechce se mi to moc zkoumat, celkově se mi zdá, že ta třída moc užitečná nebude... |
||
jsim Profil |
#3 · Zasláno: 22. 2. 2011, 16:36:26
oop není obalení funkcí třídou ... stáhni si link a prohlídni si to ...
|
||
rad Profil * |
#4 · Zasláno: 23. 2. 2011, 11:29:42
diky za rady
jeste k funkci email zkousel jsem to testovat a vzdycky se mi mail posle dvakrat kde je chyba ? |
||
__construct Profil |
#5 · Zasláno: 23. 2. 2011, 11:46:47 · Upravil/a: __construct
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 * |
#6 · Zasláno: 23. 2. 2011, 12:06:48
diky
__construct takze takto ? mysql_query("mysql_set_charset('utf8');"); //utf8 |
||
Časová prodleva: 13 let
|
0