protected function _chkErr($skip = 0) { $errno = mysqli_errno($this->_connection); if ($errno) { $message = mysqli_error($this->_connection); switch ($errno) { case 1054: $err = sooh_dbErr::fieldNotExists; break; case 1045: $err = sooh_dbErr::connectError; break; case 1049: $err = sooh_dbErr::connectError; break; case 1050: $err = sooh_dbErr::tableExists; break; case 1146: $err = sooh_dbErr::tableNotExists; break; case 1060: $err = sooh_dbErr::fieldExists; break; case 1062: case 1022: case 1069: //[1062]Duplicate entry '2' for key 'PRIMARY'' $dupKey = explode('for key ', $message); $dupKey = trim(array_pop($dupKey), '\''); $err = sooh_dbErr::duplicateKey; break; default: $err = sooh_dbErr::otherError; break; } if (empty($skip) || !isset($skip[$err])) { $lastCmd = sooh_broker::lastCmd(); $err = new sooh_dbErr($err, '[' . $errno . ']' . $message, $lastCmd); if (!empty($dupKey)) { $err->keyDuplicated = $dupKey; } error_log("[" . $err->getCode() . "]" . $err->getMessage() . "\n" . $lastCmd . "\n" . $err->getTraceAsString()); throw $err; } elseif ($skip[$err] === false) { $lastCmd = sooh_broker::lastCmd(); $err = new sooh_dbErr($err, '[' . $errno . ']' . $message, $lastCmd); if (!empty($dupKey)) { $err->keyDuplicated = $dupKey; } throw $err; } } }
protected function _chkErr($skip = 0) { $message = sqlsrv_errors(); if (is_array($message) && 5701 != $message[0]['code']) { switch ($message[0]['code']) { //case :$err=sooh_dbErr::connectError;break; case 18456: $err = sooh_dbErr::connectError; break; case 2714: $err = sooh_dbErr::tableExists; break; case 208: $err = sooh_dbErr::tableNotExists; break; case 2705: $err = sooh_dbErr::fieldExists; break; case 207: $err = sooh_dbErr::fieldNotExists; break; case 2627: //ODBC Driver 11 for SQL Server][SQL Server]Violation of PRIMARY KEY constraint 'PK__test1231__3BD0198EF085A699'. Cannot insert duplicate key in object 'dbo.test12314'. The duplicate key value is (7).done //Violation of UNIQUE KEY constraint 'b'. Cannot insert duplicate key in object 'dbo.test12314'. The duplicate key $dupKey = explode(' KEY constraint \'', $message[0]['message']); if (substr($dupKey[0], -7) == 'PRIMARY') { $dupKey = 'PRIMARY_KEY'; } else { $dupKey = explode('\'. Cannot insert', $dupKey[1]); $dupKey = array_shift($dupKey); } $err = sooh_dbErr::duplicateKey; break; default: $err = sooh_dbErr::otherError; $message[0]['message'] = "(err:" . $message[0]['code'] . ")" . $message[0]['message']; break; } if (empty($skip) || !isset($skip[$err])) { $lastCmd = sooh_broker::lastCmd(); $err = new sooh_dbErr($err, $message[0]['message'], $lastCmd); if (!empty($dupKey)) { $err->keyDuplicated = $dupKey; } error_log("[" . $err->getCode() . "]" . $err->getMessage() . "\n" . $lastCmd . "\n" . $err->getTraceAsString()); throw $err; } elseif ($skip[$err] === false) { $lastCmd = sooh_broker::lastCmd(); $err = new sooh_dbErr($err, $message[0]['message'], $lastCmd); if (!empty($dupKey)) { $err->keyDuplicated = $dupKey; } throw $err; } } }