ID:               42443
 Comment by:       lapo at lapo dot it
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         SQLite related
 Operating System: *
 PHP Version:      6CVS-2007-08-27 (CVS)
 New Comment:

Even worse than the integer case (which leads to inefficience) is the
case of BLOBs, which leads to corruption of data: text values can't
contain \0, while blob data can.

E.g. from command line sqlite3:
sqlite> SELECT LENGTH(X'12000000');
4
sqlite> SELECT LENGTH(CAST(X'12000000' AS text));
1

Because "case PDO_PARAM_LOB" falls through to "case PDO_PARAM_STR",
which uses sqlite3_bind_text... using PDO is impossible to store BLOB
data in Sqlite3.


Previous Comments:
------------------------------------------------------------------------

[2007-08-27 10:42:16] [EMAIL PROTECTED]

Description:
------------
PDO SQLite3 calls sqlite3_bind_text() for all non-blob and non-null
parameter types regardless of whether integer data is provided. Integer
data can be bound with sqlite3_bind_int(), which saves memory space and
improves efficiency, as well as storing the intended type in a database
which uses SQLite3's value typing. Patch is at:
http://news.php.net/php.internals/31935

Reproduce code:
---------------
Difficult to show reproduction.

Expected result:
----------------
Difficult to show reproduction.

Actual result:
--------------
Difficult to show reproduction.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=42443&edit=1

Reply via email to