DB::$usenull param can be used to decide whether insert()-like commands insert NULL or empty string for NULL
This commit is contained in:
@@ -35,6 +35,7 @@ class DB {
|
|||||||
public static $nonsql_error_handler = null;
|
public static $nonsql_error_handler = null;
|
||||||
public static $throw_exception_on_nonsql_error = false;
|
public static $throw_exception_on_nonsql_error = false;
|
||||||
public static $nested_transactions = false;
|
public static $nested_transactions = false;
|
||||||
|
public static $usenull = true;
|
||||||
|
|
||||||
// internal
|
// internal
|
||||||
protected static $mdb = null;
|
protected static $mdb = null;
|
||||||
@@ -54,6 +55,7 @@ class DB {
|
|||||||
if ($mdb->nonsql_error_handler !== DB::$nonsql_error_handler) $mdb->nonsql_error_handler = DB::$nonsql_error_handler;
|
if ($mdb->nonsql_error_handler !== DB::$nonsql_error_handler) $mdb->nonsql_error_handler = DB::$nonsql_error_handler;
|
||||||
if ($mdb->throw_exception_on_nonsql_error !== DB::$throw_exception_on_nonsql_error) $mdb->throw_exception_on_nonsql_error = DB::$throw_exception_on_nonsql_error;
|
if ($mdb->throw_exception_on_nonsql_error !== DB::$throw_exception_on_nonsql_error) $mdb->throw_exception_on_nonsql_error = DB::$throw_exception_on_nonsql_error;
|
||||||
if ($mdb->nested_transactions !== DB::$nested_transactions) $mdb->nested_transactions = DB::$nested_transactions;
|
if ($mdb->nested_transactions !== DB::$nested_transactions) $mdb->nested_transactions = DB::$nested_transactions;
|
||||||
|
if ($mdb->usenull !== DB::$usenull) $mdb->usenull = DB::$usenull;
|
||||||
|
|
||||||
return $mdb;
|
return $mdb;
|
||||||
}
|
}
|
||||||
@@ -124,6 +126,7 @@ class MeekroDB {
|
|||||||
public $nonsql_error_handler = null;
|
public $nonsql_error_handler = null;
|
||||||
public $throw_exception_on_nonsql_error = false;
|
public $throw_exception_on_nonsql_error = false;
|
||||||
public $nested_transactions = false;
|
public $nested_transactions = false;
|
||||||
|
public $usenull = true;
|
||||||
|
|
||||||
// internal
|
// internal
|
||||||
public $internal_mysql = null;
|
public $internal_mysql = null;
|
||||||
@@ -471,7 +474,7 @@ class MeekroDB {
|
|||||||
|
|
||||||
protected function sanitize($value) {
|
protected function sanitize($value) {
|
||||||
if (is_object($value) && ($value instanceof MeekroDBEval)) return $value->text;
|
if (is_object($value) && ($value instanceof MeekroDBEval)) return $value->text;
|
||||||
else if (is_null($value)) return 'NULL';
|
else if (is_null($value)) return $this->usenull ? 'NULL' : "''";
|
||||||
else if (is_bool($value)) return ($value ? 1 : 0);
|
else if (is_bool($value)) return ($value ? 1 : 0);
|
||||||
else if (is_int($value)) return $value;
|
else if (is_int($value)) return $value;
|
||||||
else if (is_float($value)) return $value;
|
else if (is_float($value)) return $value;
|
||||||
|
|||||||
@@ -95,6 +95,21 @@ class BasicTest extends SimpleTest {
|
|||||||
$password = DB::queryFirstField("SELECT password FROM accounts WHERE favorite_word IS NULL");
|
$password = DB::queryFirstField("SELECT password FROM accounts WHERE favorite_word IS NULL");
|
||||||
$this->assert($password === 'goodbye');
|
$this->assert($password === 'goodbye');
|
||||||
|
|
||||||
|
DB::$usenull = false;
|
||||||
|
DB::insertUpdate('accounts', array(
|
||||||
|
'id' => 3,
|
||||||
|
'favorite_word' => null,
|
||||||
|
));
|
||||||
|
|
||||||
|
$password = DB::queryFirstField("SELECT password FROM accounts WHERE favorite_word=%s AND favorite_word=%s", null, '');
|
||||||
|
$this->assert($password === 'goodbye');
|
||||||
|
|
||||||
|
DB::$usenull = true;
|
||||||
|
DB::insertUpdate('accounts', array(
|
||||||
|
'id' => 3,
|
||||||
|
'favorite_word' => null,
|
||||||
|
));
|
||||||
|
|
||||||
DB::$param_char = '###';
|
DB::$param_char = '###';
|
||||||
$bart = DB::queryFirstRow("SELECT * FROM accounts WHERE age IN ###li AND height IN ###ld AND username IN ###ls",
|
$bart = DB::queryFirstRow("SELECT * FROM accounts WHERE age IN ###li AND height IN ###ld AND username IN ###ls",
|
||||||
array(15, 25), array(10.371, 150.123), array('Bart', 'Barts'));
|
array(15, 25), array(10.371, 150.123), array('Bart', 'Barts'));
|
||||||
|
|||||||
Reference in New Issue
Block a user