MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп PEAR DB рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ

рдПрдХ рд╕рдордп, MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп PEAR DB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг: php, slowdown, рдЖрджрд┐ рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерди рдХреА рд╕рдорд╛рдкреНрддрд┐) рд▓реЗрдХрд┐рди рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдореЗрдЧрд╛рдЯрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдПрдореБрд▓реЗрдЯрд░ рдХреА рдЦреЛрдЬ рд╢реБрд░реВ рд╣реБрдИред рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЙрдкрдпреБрдХреНрдд рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдПрд▓рд┐рдпрдирдиреЗрд╕ рдереЛрдбрд╝рд╛ рд╕рдордп рдмрд┐рддрд╛рдПрдВ рдФрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдбреНрд░рд╛ рдХрд░реЗрдВред
рдХрдХреНрд╖рд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмреЗрдЪрд╛, рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ (рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ 99% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛) рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдкреВрд░рдХ / рд╕рд╣реА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреВрд░рд╛ рд╣реЛ рдЧрдП рдереЗ, рдЗрд╕ рдХреЛрдб рдХреЛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╕рдкреНрд▓реАрдореЗрдВрдЯ рдпрд╛ рдХрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ 2 рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╡рд░реНрдЧ рдФрд░ рдкреАрдИрдЖрд░ рдбреАрдмреА рдПрдореБрд▓реЗрдЯрд░ рд╡рд░реНрдЧ рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
2 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХреЛрдб рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдХреЛрдб рдореЗрдВ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдФрд░ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрдзрди рдФрд░ рд╕реБрдзрд╛рд░, рдХреГрдкрдпрд╛ рдкреАрдПрдо рдореЗрдВ, рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рд╕реЗ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реНрд░реЛрдд рдореЗрдВ рдмрдирд╛рдКрдВрдЧрд╛ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХрд╛рдо рдореЗрдВ рдЖрдПрдЧрд╛ рдФрд░ рдХреГрдкрдпрд╛ рдЬреНрдпрд╛рджрд╛ рдХрд┐рдХ рди рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рд░реЗрдЯреНрд░реЛрдПрдХреНрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдб рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕реЗ рдпрд╣рд╛рдВ рдбрд╛рд▓рдХрд░ рдореИрдВ рдХрд┐рд╕реА рдХреЛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рди рдХрд┐ рдЙрд╕рдХреА рд╕реБрдВрджрд░рддрд╛ рдкрд░ рдЧрд░реНрд╡ рдХрд░рдирд╛ред

рдорд╛рдорд▓реЗ рдкрд░ рдЖрдЧреЗ:

рддреНрд░реБрдЯрд┐ рд╡рд░реНрдЧ:
<?php /* * Class: Error * Progr.: Mikhail Tchervonenko * Data: 2009-03-04 * EMail: rusmikleATgmailPointCom * ICQ: 35818796 * Skype: RusMikle */ class ERROR { var $show_errors =false; var $stop_after_error =false; var $error =0; var $error_message =""; var $error_messages =false; var $error_backtrase =false; var $error_filename = 'error_log/error_log.txt'; // *********************************** // ***** err_log function start function err_log($error_text="",$error_backtrase=false) { $this->error=1; $this->error_backtrase = $error_backtrase; $error_backtrase = $this->backtrace()."\n\r"; $this->error_message = "-----".date("DM j G:i:s T Y").$error_text; if (is_writable($this->error_filename)) { if (!$handle = fopen($this->error_filename, 'a')) { $ret = false; } if (fwrite($handle, "\n\r------\n\r".$this->error_message.$error_backtrase."\n\r-------\n\r") === FALSE) { $ret = false; } fclose($handle); $ret = true; } if($this->error_backtrase) $this->error_message .= "\n\r".$error_backtrase; $this->error_messages[] = $this->error_message; if($this->show_errors) echo str_replace("\n\r","<br>",$this->error_message); if($this->stop_after_error) exit(); return $ret; } // *********************************** // ***** backtrace function start function backtrace() { $output = "\n\r"; $output .= "Backtrace:\n\r"; $backtrace = debug_backtrace(); foreach ($backtrace as $bt) { $args = ''; foreach ($bt['args'] as $a) { if (!empty($args)) { $args .= ', '; } switch (gettype($a)) { case 'integer': case 'double': $args .= $a; break; case 'string': $a = substr($a, 0, 64).((strlen($a) > 64) ? '...' : ''); $args .= "\"$a\""; break; case 'array': $args .= 'Array('.count($a).')'; break; case 'object': $args .= 'Object('.get_class($a).')'; break; case 'resource': $args .= 'Resource('.strstr($a, '#').')'; break; case 'boolean': $args .= $a ? 'True' : 'False'; break; case 'NULL': $args .= 'Null'; break; default: $args .= 'Unknown'; } } $output .= "\n\r"; $output .= "file: {$bt['line']} - {$bt['file']}\n\r"; $output .= "call: {$bt['class']}{$bt['type']}{$bt['function']}($args)\n\r"; } $output .= "\n\r"; return $output; } // *********************************** // ***** getMessage function start function getMessage() { return $this->error_message; } } ?> 


рдФрд░ рдлрд┐рд░ рдбреАрдмреА рдПрдореБрд▓реЗрдЯрд░ рдЦреБрдж

 <?php /* * Class: DB * Progr.: Mikhail Tchervonenko * Data: 2009-03-04 * EMail: rusmikleATgmailPointCom * ICQ: 35818796 * Skype: RusMikle */ class DB extends ERROR { var $tp ="cms1_"; var $conn =false; var $counter =0; // *********************************** // ***** set_database function start function set_database($database) { $res = mysql_select_db($database,$this->conn); if(!$res) { $this->err_log(); return false; } $this->error=0; return true; } // *********************************** // ***** construct function start function connect($host="localhost", $user="root", $pass="", $database="", $table_prefix="st__", $show_errors = false, $stop_after_error =false, $error_backtrase = false, $error_log_file="error_log/error_log.txt") { $this->tp = $table_prefix; $this->show_errors =$show_errors; $this->stop_after_error =$stop_after_error; $this->conn = mysql_connect($host, $user, $pass); if(!$this->conn) { $this->err_log(); return false; } if(!$this->set_database($database)) return false; $this->error=0; return true; } // *********************************** // ***** destruct function start function __destruct() { if(!empty($this->conn)) @mysql_close($this->conn); $this->conn = null; } // *********************************** // ***** close function start function close() { if(!empty($this->conn)) @$mysql_close($this->conn); $rs = null; $this->error=0; } // *********************************** // ***** query function start function query($query) { $this->error=0; $ret = mysql_query($query,$this->conn); if(!$ret) { $this->err_log(mysql_error()."\n\rQUERY:"."\n\r".$query); return false; } return $ret; } // *********************************** // ***** fcount function start function fcount($res) { if(!$res) return 0; $ret = @mysql_num_fields ($res); return $ret; } // *********************************** // ***** ecount function start function ecount($res) { if(!$res) return 0; $ret = @mysql_num_rows ($res); return $ret; } // *********************************** // ***** getOne function start function getOne($sql) { if(empty($sql)) { $this->error=1; return false; } $res = $this->query($sql); $ret = @mysql_fetch_array($res,MYSQL_NUM); if(!empty($res)) @mysql_free_result($res); return $ret[0]; } // *********************************** // ***** getRow function start function & getRow($sql, $ret_type=MYSQL_ASSOC) { // MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH if(empty($sql)) { $this->error=1; return false; } $this->counter = 0; $ret=array(); $res = $this->query($sql); $ret = @mysql_fetch_array($res, $ret_type); $this->counter = $this->ecount($res); if(!empty($res)) @mysql_free_result($res); return $ret; } // *********************************** // ***** getAll function start function & getAll($sql, $ret_type=MYSQL_ASSOC) { // MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH if(empty($sql)) { $this->error=1; return false; } $this->counter = 0; $ret=array(); $res = $this->query($sql); if(!empty($res)) $this->counter = $this->ecount($res); if($this->counter>0) { while ($row = @mysql_fetch_array($res, $ret_type)) $ret[] = $row; } if(!empty($res)) @mysql_free_result($res); return $ret; } // *********************************** // ***** nextId function start function nextId($table_name) { if(empty($table_name)) return false; $table_name=strtolower(trim($table_name))."_seq"; $this->query("CREATE TABLE IF NOT EXISTS `".$table_name."` (`id` bigint(20) unsigned) ENGINE=MyISAM DEFAULT CHARSET=utf8;"); $this->query("LOCK TABLES ".$table_name." WRITE"); $id = $this->getOne("SELECT id FROM ".$table_name); if(empty($id)) { $id=1; $this->query("INSERT into ".$table_name." SET id=".$id); } else { $id++; $this->query("UPDATE ".$table_name." SET id=".$id); } $this->query("UNLOCK TABLES"); return $id; } // *********************************** // ***** iserror function start //        PEAR  !!!! function iserror($result) { if(!is_object($result) && !is_array($result) && empty($result)) return true; else return false; } }// End Class ?> 


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдБ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ, рдХреЛрдб рдмрдбрд╝рд╛ рдФрд░ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред

рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ PEAR DB рдХреЛ рдмрдВрдж рдХрд░реЗрдВ, рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ, DB рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред

рд╕рд╛рднрд╛рд░, рдорд┐рдЦрд╛рдЗрд▓ рд╢реЗрд░реЛрдиреЗрдВрдХреЛ
ps рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдореЗрдВ рдЗрд╕рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдлрд┐рд░ рд╕реЗ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

Source: https://habr.com/ru/post/In135654/


All Articles