new DateTime() can be used with insert-like commands, and with %? as well

This commit is contained in:
Sergey Tsalkov
2013-06-02 19:45:44 -07:00
parent e9a55de0b4
commit e61d66fdf8
2 changed files with 10 additions and 3 deletions

View File

@@ -473,8 +473,13 @@ class MeekroDB {
protected function escape($str) { return "'" . $this->get()->real_escape_string(strval($str)) . "'"; } protected function escape($str) { return "'" . $this->get()->real_escape_string(strval($str)) . "'"; }
protected function sanitize($value) { protected function sanitize($value) {
if (is_object($value) && ($value instanceof MeekroDBEval)) return $value->text; if (is_object($value)) {
else if (is_null($value)) return $this->usenull ? 'NULL' : "''"; if ($value instanceof MeekroDBEval) return $value->text;
else if ($value instanceof DateTime) return $this->escape($value->format('Y-m-d H:i:s'));
else return '';
}
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;

View File

@@ -142,7 +142,9 @@ class BasicTest extends SimpleTest {
} }
function test_4_query() { function test_4_query() {
DB::query("UPDATE %b SET birthday=%t WHERE username=%s", 'accounts', new DateTime('10 September 2000 13:13:13'), 'Charlie\'s Friend'); DB::update('accounts', array(
'birthday' => new DateTime('10 September 2000 13:13:13')
), 'username=%s', 'Charlie\'s Friend');
$results = DB::query("SELECT * FROM accounts WHERE username=%s AND birthday IN %lt", 'Charlie\'s Friend', array('September 10 2000 13:13:13')); $results = DB::query("SELECT * FROM accounts WHERE username=%s AND birthday IN %lt", 'Charlie\'s Friend', array('September 10 2000 13:13:13'));
$this->assert(count($results) === 1); $this->assert(count($results) === 1);