@@ -101,6 +101,26 @@ class MySQL_wrapper {
101101 */
102102 var $ logErrors = FALSE ;
103103
104+ /** Stop script execution on error (Default: FALSE)
105+ * @var boolean
106+ */
107+ var $ dieOnError = FALSE ;
108+
109+ /** E-mail errors (Default: FALSE)
110+ * @var boolean
111+ */
112+ var $ emailErrors = FALSE ;
113+
114+ /** E-mail errors to (array with emails)
115+ * @var array
116+ */
117+ var $ emailErrorsTo = array ();
118+
119+ /** E-mail errors subject
120+ * @var string
121+ */
122+ var $ emailErrorsSubject = 'MySQL ERROR ON SERVER: %s ' ;
123+
104124 /** Log Date Format (Default: Y-m-d H:i:s)
105125 * @var string
106126 */
@@ -898,7 +918,7 @@ function transaction($qarr = array()) {
898918 * @param boolean $web - HTML (TRUE) or Plaint text
899919 */
900920 function error ($ msg , $ web = FALSE ) {
901- if ($ this ->displayError || $ this ->logErrors ) {
921+ if ($ this ->displayError || $ this ->logErrors || $ this -> emailErrors ) {
902922 if ($ this ->link ) {
903923 $ this ->error = @mysql_error ($ this ->link );
904924 $ this ->errorNo = @mysql_errno ($ this ->link );
@@ -910,7 +930,30 @@ function error($msg, $web = FALSE) {
910930 $ this ->log ('ERROR ' , "NO -> {$ this ->errorNo } - DESC -> {$ this ->error } - CALL -> {$ this ->backtrace ()}" );
911931 if ($ this ->displayError )
912932 echo $ msg , $ this ->link ? $ error : NULL ;
933+ if ($ this ->emailErrors ) {
934+ $ headers = array ();
935+ $ headers [] = "MIME-Version: 1.0 " ;
936+ $ headers [] = "Content-type: text/plain; charset=UTF-8 " ;
937+ $ headers [] = "From: MySQL ERROR REPORTING <no-reply@ {$ _SERVER ['SERVER_ADDR ' ]}> " ;
938+ $ headers [] = "Reply-To: Recipient Name <no-reply@ {$ _SERVER ['SERVER_ADDR ' ]}> " ;
939+ $ headers [] = "Subject: {$ this ->emailErrorsSubject }" ;
940+ $ headers [] = "X-Mailer: PHP/ " . phpversion ();
941+ $ m = array ();
942+ $ m ['ENV ' ] = $ _SERVER ['SERVER_NAME ' ];
943+ $ m ['TIME ' ] = date ($ this ->dateFormat );
944+ $ m ['SCRIPT ' ] = $ _SERVER ['PHP_SELF ' ];
945+ $ m ['CALL ' ] = $ this ->backtrace ();
946+ $ m ['ERROR NO ' ] = $ this ->errorNo ;
947+ $ m ['ERROR ' ] = $ this ->error ;
948+ $ m ['MESSAGE ' ] = $ msg ;
949+ $ message = array ();
950+ foreach ($ m as $ k => $ v ) {
951+ $ message [] = sprintf ("%-10s%s " , $ k , $ v );
952+ }
953+ mail (implode (', ' , $ this ->emailErrorsTo ), sprintf ($ this ->emailErrorsSubject , $ _SERVER ['SERVER_NAME ' ]), implode ("\r\n" , $ message ), implode ("\r\n" , $ headers ));
954+ }
913955 }
956+ !$ this ->dieOnError || die ();
914957 }
915958
916959 /** Logs queries or / and errors to file
0 commit comments