Ben son açılan bağlantı için bir link (as we generally often use only one connection) işleri kolaylaştırmak için, bir yere bellekte tutulur varsayalım.
Quickly going through the sources of ext/mysql :
(All line numbers are in php_mysql.c -- the version of the sources is a random snapshot of PHP 5.3.2-dev from a couple of weeks ago ; so, they might have changed a bit)
mysql_connect seems to correspond to the C-level function called php_mysql_do_connect (line 922) adlandırılan alan kullanıcı işlev
- The
php_mysql_do_connect function calls php_mysql_set_default_link (line 832)
- Son açılan bağlantıyı saklamak için
php_mysql_get_default_link (line 908) adlı bir fonksiyonu da vardır
- Bu
php_mysql_get_default_link function is called by mysql_select_db , when there is no link passed to it (line 992)
And php_mysql_set_default_link is calling this to store the default_link :
MySG(default_link) = id;
İşte MySG bu gibi tanımlanmış bir makro olmanın (in php_mysql_structs.h ):
#ifdef ZTS
# define MySG(v) TSRMG(mysql_globals_id, zend_mysql_globals *, v)
#else
# define MySG(v) (mysql_globals.v)
#endif
Hemen hemen benim için bir global değişken gibi görünüyor ;-)
If you want, you can take a look at the sources yourself : ext/mysql/php_mysql.c and ext/mysql/php_mysql_structs.h.
As I said, this has probably been modified a bit since the version in which I checked -- which means the line numbers might not match exactly ; but the functions names are easy anough to understand, so you should be able to track down what calls what and where :-)