diff --git a/src/driver-mysqli/classes/LSYS/Database/MYSQLi.php b/src/driver-mysqli/classes/LSYS/Database/MYSQLi.php index dd4a113..faf61db 100644 --- a/src/driver-mysqli/classes/LSYS/Database/MYSQLi.php +++ b/src/driver-mysqli/classes/LSYS/Database/MYSQLi.php @@ -192,7 +192,7 @@ public function query($sql,array $value=[],array $value_type=[]){ */ public function exec($sql,array $value=[],array $value_type=[]){ try{ - return parent::query($sql,$value,$value_type); + return parent::exec($sql,$value,$value_type); }catch (Exception $e){//unlink connect reset transaction status if ($this->getConnectManager()->isUnConnect($e->getCode())) { $this->in_transaction=false; diff --git a/src/slave-query-check-cache-memcache/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcache.php b/src/slave-query-check-cache-memcache/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcache.php index f54c982..e373310 100644 --- a/src/slave-query-check-cache-memcache/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcache.php +++ b/src/slave-query-check-cache-memcache/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcache.php @@ -11,22 +11,42 @@ class Memcache implements Cache{ protected $memcache; protected $prefix; protected $delayed; - public function __construct($delayed=10,\LSYS\Memcache $memcache=null,$prefix='db_master'){ - $this->memcache=$memcache?$memcache:\LSYS\Memcache\DI::get()->memcache(); + protected $log; + /** + * @param number $delayed + * @param \LSYS\Memcache $memcache + * @param string $prefix + * @param callable $log error report callback (\LSYS\Exception $e) + */ + public function __construct($delayed=10,\LSYS\Memcache $memcache=null,$prefix='db_master',callable $log=null){ + $this->memcache=$memcache; $this->prefix=$prefix; $this->delayed=$delayed; + $this->log=$log; + } + protected function memcache(){ + if (!is_object($this->memcache))$this->memcache=\LSYS\Memcache\DI::get()->memcached(); + try{ + $this->memcache->configServers(); + }catch (\LSYS\Exception $e){ + is_callable($this->log)&&call_user_func($this->log,$e); + return; + } + return $this->memcache; } public function time(array $table){ - $this->memcache->configServers(); + $memcache=$this->memcache(); + if (!is_object($memcache)) return true; foreach ($table as $v){ - if(intval($this->memcache->get($this->prefix.$v))>time())return true; + if(intval($memcache->get($this->prefix.$v))>time())return true; } } public function save(array $table){ - $this->memcache->configServers(); + $memcache=$this->memcache(); + if (!is_object($memcache)) return; $delayed=$this->delayed(); foreach ($table as $v){ - $this->memcache->set($this->prefix.$v,time()+$delayed,0,$delayed); + $memcache->set($this->prefix.$v,time()+$delayed,0,$delayed); } } public function delayed(){ diff --git a/src/slave-query-check-cache-memcached/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcached.php b/src/slave-query-check-cache-memcached/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcached.php index 68ff68e..7539dae 100644 --- a/src/slave-query-check-cache-memcached/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcached.php +++ b/src/slave-query-check-cache-memcached/classes/LSYS/Database/SlaveQueryCheck/Cache/Memcached.php @@ -11,22 +11,42 @@ class Memcached implements Cache{ protected $memcache; protected $prefix; protected $delayed; - public function __construct($delayed=10,\LSYS\Memcached $memcache=null,$prefix='db_master'){ - $this->memcache=$memcache?$memcache:\LSYS\Memcached\DI::get()->memcached(); + protected $log; + /** + * @param number $delayed + * @param \LSYS\Memcached $memcache + * @param string $prefix + * @param callable $log @param callable $log error report callback (\LSYS\Exception $e) + */ + public function __construct($delayed=10,\LSYS\Memcached $memcache=null,$prefix='db_master',callable $log=null){ + $this->memcache=$memcache; $this->prefix=$prefix; $this->delayed=$delayed; + $this->log=$log; + } + protected function memcache(){ + if (!is_object($this->memcache))$this->memcache=\LSYS\Memcached\DI::get()->memcached(); + try{ + $this->memcache->configServers(); + }catch (\LSYS\Exception $e){ + is_callable($this->log)&&call_user_func($this->log,$e); + return; + } + return $this->memcache; } public function time(array $table){ - $this->memcache->configServers(); + $memcache=$this->memcache(); + if (!is_object($memcache)) return true; foreach ($table as $v){ - if(intval($this->memcache->get($this->prefix.$v))>time())return true; + if(intval($memcache->get($this->prefix.$v))>time())return true; } } public function save(array $table){ - $this->memcache->configServers(); + $memcache=$this->memcache(); + if (!is_object($memcache)) return; $delayed=$this->delayed(); foreach ($table as $v){ - $this->memcache->set($this->prefix.$v,time()+$delayed,$delayed); + $memcache->set($this->prefix.$v,time()+$delayed,$delayed); } } public function delayed(){ diff --git a/src/slave-query-check-cache-redis/classes/LSYS/Database/SlaveQueryCheck/Cache/Redis.php b/src/slave-query-check-cache-redis/classes/LSYS/Database/SlaveQueryCheck/Cache/Redis.php index e374b29..5357bc4 100644 --- a/src/slave-query-check-cache-redis/classes/LSYS/Database/SlaveQueryCheck/Cache/Redis.php +++ b/src/slave-query-check-cache-redis/classes/LSYS/Database/SlaveQueryCheck/Cache/Redis.php @@ -11,14 +11,33 @@ class Redis implements Cache{ protected $redis; protected $key; protected $delayed; - public function __construct($delayed=10,\LSYS\Redis $redis=null,$key='db_master'){ + protected $log; + /** + * @param number $delayed + * @param \LSYS\Redis $redis + * @param string $key + * @param callable $log error report callback (\LSYS\Exception $e) + */ + public function __construct($delayed=10,\LSYS\Redis $redis=null,$key='db_master',callable $log=null){ $this->delayed=$delayed; - $this->redis=$redis?$redis:\LSYS\Redis\DI::get()->redis(); $this->key=$key; + $this->redis=$redis; + $this->log=$log; + } + protected function redis(){ + if (!is_object($this->redis))$this->redis=\LSYS\Redis\DI::get()->redis(); + try{ + $this->redis->configConnect(); + }catch (\LSYS\Exception $e){ + is_callable($this->log)&&call_user_func($this->log,$e); + return; + } + return $this->redis; } public function time(array $table){ - $this->redis->configConnect(); - $val=$this->redis->hMGet($this->key,$table); + $redis=$this->redis(); + if(!is_object($redis))return true; + $val=$redis->hMGet($this->key,$table); if (is_array($val)){ foreach ($val as $v){ if (intval($v)>time())return true; @@ -26,9 +45,10 @@ public function time(array $table){ } } public function save(array $table){ - $this->redis->configConnect(); + $redis=$this->redis(); + if(!is_object($redis))return ; $data=array_combine($table, array_fill(0, count($table), time()+$this->delayed())); - return $this->redis->hmSet($this->key,$data); + return $redis->hmSet($this->key,$data); } public function delayed(){ return $this->delayed;