Disallow subtraction on unsigned columns:
authorRoland Häder <roland@mxchange.org>
Sat, 30 Nov 2013 21:31:21 +0000 (21:31 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 30 Nov 2013 21:31:21 +0000 (21:31 +0000)
When you use subtraction between integer values where one is of type
UNSIGNED, the result is unsigned unless the NO_UNSIGNED_SUBTRACTION SQL
mode is enabled. See Section 12.10, “Cast Functions and Operators”.

inc/db/lib-mysql3.php
inc/db/lib-mysqli.php

index 24fb6e4..fd86300 100644 (file)
@@ -231,6 +231,9 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) {
        `character_set_connection`='utf8',
        `character_set_database`='utf8',
        `character_set_server`='utf8'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__);
+
+               // Disallow subtraction for unsigned columns
+               sqlQuery("SET `sql_mode`='NO_UNSIGNED_SUBTRACTION'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__);
        } // END - if
 
        // Return the resource
index 27798e9..9a1be87 100644 (file)
@@ -218,6 +218,9 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) {
        `character_set_connection`='utf8',
        `character_set_database`='utf8',
        `character_set_server`='utf8'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__);
+
+               // Disallow subtraction for unsigned columns
+               sqlQuery("SET `sql_mode`='NO_UNSIGNED_SUBTRACTION'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__);
        } // END - if
 
        // Any errors encountered?