INSERT OR REPLACE implementation (#6771)
For now with support in postgres and mysql databases. For now used in rcube_cache, rcube_imap_cache and enigma pluginpull/7195/head
parent
e4281ae6d4
commit
1613f3ab4c
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
+-----------------------------------------------------------------------+
|
||||||
|
| This file is part of the Roundcube Webmail client |
|
||||||
|
| |
|
||||||
|
| Copyright (C) The Roundcube Dev Team |
|
||||||
|
| |
|
||||||
|
| Licensed under the GNU General Public License version 3 or |
|
||||||
|
| any later version with exceptions for skins & plugins. |
|
||||||
|
| See the README file for a full license statement. |
|
||||||
|
| |
|
||||||
|
| PURPOSE: |
|
||||||
|
| Database wrapper class for query parameters |
|
||||||
|
+-----------------------------------------------------------------------+
|
||||||
|
| Author: Aleksander Machniak <alec@alec.pl> |
|
||||||
|
+-----------------------------------------------------------------------+
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Database query parameter
|
||||||
|
*
|
||||||
|
* @package Framework
|
||||||
|
* @subpackage Database
|
||||||
|
*/
|
||||||
|
class rcube_db_param
|
||||||
|
{
|
||||||
|
protected $db;
|
||||||
|
protected $type;
|
||||||
|
protected $value;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object constructor
|
||||||
|
*
|
||||||
|
* @param rcube_db $db Database driver
|
||||||
|
* @param mixed $value Parameter value
|
||||||
|
* @param string $type Parameter type (One of rcube_db::TYPE_* constants)
|
||||||
|
*/
|
||||||
|
public function __construct($db, $value, $type = null)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
$this->value = $value;
|
||||||
|
$this->type = $type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value as string for inlining into SQL query
|
||||||
|
*/
|
||||||
|
public function __toString()
|
||||||
|
{
|
||||||
|
if ($this->type === rcube_db::TYPE_SQL) {
|
||||||
|
return (string) $this->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (string) $this->db->quote($this->value, $this->type);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue