[drupal-devel] [feature] MySQLi
Thox
drupal-devel at drupal.org
Fri Jun 24 10:19:28 UTC 2005
Issue status update for http://drupal.org/node/24264
Project: Drupal
Version: cvs
Component: base system
Category: feature requests
Priority: critical
Assigned to: Anonymous
Reported by: nsk
Updated by: Thox
Status: patch
Attachment: http://drupal.org/files/issues/database.mysqli_1.inc (5.87 KB)
And the attachment...
Thox
Previous comments:
------------------------------------------------------------------------
June 3, 2005 - 21:59 : nsk
I have asked this before but no reply, so could someone have a look at
it?
I noticed Drupal 4.6.1 does not support MySQLi, the new MySQL client of
PHP 5.
It only supports the old deprecated MySQL client.
Are you planning adding MySQLi support in future Drupal versions?
I have already written some abstraction functions that dynamically
detect
which client is installed, and it's GPL. Perhaps you could take some of
my code for
a MySQLi-enabled Drupal version. In general it is very very easy to
enable MySQLi support, I give an example here:
http://jnana.wikinerds.org/index.php/MySQLi
PEAR also supports MySQLi.
------------------------------------------------------------------------
June 9, 2005 - 12:08 : Thox
Attachment: http://drupal.org/files/issues/database.mysqli.inc (5.9 KB)
Just one file for the /includes/ folder. I've tested this on my local
machine and it seems that everything is working fine (I didn't do much,
add / delete one node, saved admin settings).
Important: I've removed the "CLIENT_FOUND_ROWS" part, as mysqli
connects differently. I don't know how essential this is/was and
whether it will affect anything like paging?
------------------------------------------------------------------------
June 13, 2005 - 14:24 : Thox
Attachment: http://drupal.org/files/issues/database.mysqli_0.inc (5.81 KB)
After discussion with killes and chx, I found that mysqli does not
return the number of matched rows (during an update) as default. It
returns the number of changed rows instead.
I've changed my contribution to use a different mysqli connection
method (mysqli_real_connect), which lets me set the
MYSQLI_CLIENT_FOUND_ROWS flag and return the matched rows.
During my tests, I also tried out how pg_affected_rows() works. It
seems PostgreSQL returns the matched rows by default.
See Issue 19442: cache_set sometimes fails [1] for more information on
why this flag is important.
[1] http://drupal.org/node/19442
------------------------------------------------------------------------
June 14, 2005 - 01:35 : chx
I'd put function_exist check into db_connect so that we fail clean if
mysqli is not present. I knwo we do not do this is pgsql and mysql
connect routines -- maybe we should?
------------------------------------------------------------------------
June 24, 2005 - 11:18 : Thox
Added function_exist() check as per chx's suggestion. Currently set it
to return false. Should it use trigger_error instead?
More information about the drupal-devel
mailing list