Update to DB_DataObject 1.11.2

Now there's definitely no PHP4 support whatsoever, if there even
was little of it before this commit.
This commit is contained in:
Mikael Nordfeldth
2013-08-12 12:32:39 +02:00
parent f79aec36fe
commit 7d8e199a3f
6 changed files with 1478 additions and 552 deletions

30
extlib/DB/DataObject/Cast.php Normal file → Executable file
View File

@@ -17,7 +17,7 @@
* @author Alan Knowles <alan@akbkhome.com>
* @copyright 1997-2008 The PHP Group
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version CVS: $Id: Cast.php 287158 2009-08-12 13:58:31Z alan_k $
* @version CVS: $Id: Cast.php 326604 2012-07-12 03:02:00Z alan_k $
* @link http://pear.php.net/package/DB_DataObject
*/
@@ -395,7 +395,16 @@ class DB_DataObject_Cast {
// this is funny - the parameter order is reversed ;)
return "'".sqlite_escape_string($this->value)."'";
case 'mssql':
if(is_numeric($this->value)) {
return $this->value;
}
$unpacked = unpack('H*hex', $this->value);
return '0x' . $unpacked['hex'];
default:
return PEAR::raiseError("DB_DataObject_Cast cant handle blobs for Database:{$db->dsn['phptype']} Yet");
}
@@ -422,10 +431,10 @@ class DB_DataObject_Cast {
// perhaps we should support TEXT fields???
//
if (!($to & DB_DATAOBJECT_BLOB)) {
return PEAR::raiseError('Invalid Cast from a DB_DataObject_Cast::string to something other than a blob!'.
' (why not just use native features)');
}
// $to == a string field which is the default type (0)
// so we do not test it here. - we assume that number fields
// will accept a string?? - which is stretching it a bit ...
// should probaly add that test as some point.
switch ($db->dsn['phptype']) {
case 'pgsql':
@@ -438,7 +447,15 @@ class DB_DataObject_Cast {
case 'mysqli':
return "'".mysqli_real_escape_string($db->connection, $this->value)."'";
case 'mssql':
// copied from the old DB mssql code...?? not sure how safe this is.
return "'" . str_replace(
array("'", "\\\r\n", "\\\n"),
array("''", "\\\\\r\n\r\n", "\\\\\n\n"),
$this->value
) . "'";
default:
return PEAR::raiseError("DB_DataObject_Cast cant handle blobs for Database:{$db->dsn['phptype']} Yet");
}
@@ -544,6 +561,5 @@ class DB_DataObject_Cast {
}