summaryrefslogtreecommitdiff
path: root/ext/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql')
-rw-r--r--ext/mysql/mysql.dsp29
-rw-r--r--ext/mysql/php_mysql.c45
-rw-r--r--ext/mysql/php_mysql.h10
3 files changed, 21 insertions, 63 deletions
diff --git a/ext/mysql/mysql.dsp b/ext/mysql/mysql.dsp
index 20f69629f4..0d3ea0114e 100644
--- a/ext/mysql/mysql.dsp
+++ b/ext/mysql/mysql.dsp
@@ -21,7 +21,6 @@ CFG=mysql - Win32 Debug_TS
!MESSAGE "mysql - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "mysql - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "mysql - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mysql - Win32 Release_TS_inline" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
@@ -136,33 +135,6 @@ LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release_TS"
-!ELSEIF "$(CFG)" == "mysql - Win32 Release_TS_inline"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "mysql___Win32_Release_TS_inline"
-# PROP BASE Intermediate_Dir "mysql___Win32_Release_TS_inline"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release_TS_inline"
-# PROP Intermediate_Dir "Release_TS_inline"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "ZTS" /D "MYSQL_EXPORTS" /D "COMPILE_DL_MYSQL" /D HAVE_MYSQL=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "ZTS" /D "MYSQL_EXPORTS" /D "COMPILE_DL_MYSQL" /D HAVE_MYSQL=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x40d /d "NDEBUG"
-# ADD RSC /l 0x40d /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release_TS"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS_inline/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release_TS_inline"
-
!ENDIF
# Begin Target
@@ -171,7 +143,6 @@ LINK32=link.exe
# Name "mysql - Win32 Debug"
# Name "mysql - Win32 Debug_TS"
# Name "mysql - Win32 Release_TS"
-# Name "mysql - Win32 Release_TS_inline"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c
index a6844a7c3c..471db3f26f 100644
--- a/ext/mysql/php_mysql.c
+++ b/ext/mysql/php_mysql.c
@@ -52,7 +52,6 @@ static int le_result,le_link,le_plink;
#include "php_ini.h"
-#if HAVE_MYSQL
# if HAVE_MYSQL_MYSQL_H
# include <mysql/mysql.h>
# else
@@ -62,7 +61,6 @@ static int le_result,le_link,le_plink;
#ifdef HAVE_ERRMSG_H
#include <errmsg.h>
#endif
-#endif
#define SAFE_STRING(s) ((s)?(s):"")
@@ -150,26 +148,23 @@ zend_module_entry mysql_module_entry = {
PHP_MINFO(mysql), STANDARD_MODULE_PROPERTIES
};
-#ifdef ZTS
-int mysql_globals_id;
-#else
-PHP_MYSQL_API php_mysql_globals mysql_globals;
-#endif
+
+ZEND_DECLARE_MODULE_GLOBALS(mysql)
#ifdef COMPILE_DL_MYSQL
-# include "dl/phpdl.h"
-DLEXPORT zend_module_entry *get_module(void) { return &mysql_module_entry; }
+ZEND_DLEXPORT zend_module_entry *get_module(void) { return &mysql_module_entry; }
#endif
void timeout(int sig);
#define CHECK_LINK(link) { if (link==-1) { php_error(E_WARNING,"MySQL: A link to the server could not be established"); RETURN_FALSE; } }
-/* NOTE Don't ask me why, but soon as I made this the list
- * destructor, I stoped getting access violations in windows
- * with mysql 3.22.7a
+/*
+ * This wrapper is required since mysql_free_result() returns an integer, and
+ * thus, cannot be used directly
*/
-static void _free_mysql_result(MYSQL_RES *mysql_result){
+static void _free_mysql_result(MYSQL_RES *mysql_result)
+{
mysql_free_result(mysql_result);
}
@@ -240,31 +235,25 @@ static PHP_INI_MH(OnMySQLPort)
PHP_INI_BEGIN()
- STD_PHP_INI_BOOLEAN("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, php_mysql_globals, mysql_globals)
- STD_PHP_INI_ENTRY_EX("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_mysql_globals, mysql_globals, display_link_numbers)
- STD_PHP_INI_ENTRY_EX("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_mysql_globals, mysql_globals, display_link_numbers)
- STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, php_mysql_globals, mysql_globals)
- STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, php_mysql_globals, mysql_globals)
- STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, php_mysql_globals, mysql_globals)
+ STD_PHP_INI_BOOLEAN("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, zend_mysql_globals, mysql_globals)
+ STD_PHP_INI_ENTRY_EX("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, zend_mysql_globals, mysql_globals, display_link_numbers)
+ STD_PHP_INI_ENTRY_EX("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, zend_mysql_globals, mysql_globals, display_link_numbers)
+ STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, zend_mysql_globals, mysql_globals)
+ STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, zend_mysql_globals, mysql_globals)
+ STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, zend_mysql_globals, mysql_globals)
PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort)
PHP_INI_END()
-#ifdef ZTS
-static void php_mysql_init_globals(php_mysql_globals *mysql_globals)
+static void php_mysql_init_globals(zend_mysql_globals *mysql_globals)
{
- MySG(num_persistent) = 0;
+ mysql_globals->num_persistent = 0;
}
-#endif
PHP_MINIT_FUNCTION(mysql)
{
-#ifdef ZTS
- mysql_globals_id = ts_allocate_id(sizeof(php_mysql_globals), (ts_allocate_ctor) php_mysql_init_globals, NULL);
-#else
- MySG(num_persistent)=0;
-#endif
+ ZEND_INIT_MODULE_GLOBALS(mysql, php_mysql_init_globals, NULL);
REGISTER_INI_ENTRIES();
le_result = register_list_destructors(_free_mysql_result,NULL);
diff --git a/ext/mysql/php_mysql.h b/ext/mysql/php_mysql.h
index 46d4568983..50c79a49bf 100644
--- a/ext/mysql/php_mysql.h
+++ b/ext/mysql/php_mysql.h
@@ -80,23 +80,22 @@ PHP_FUNCTION(mysql_field_len);
PHP_FUNCTION(mysql_field_type);
PHP_FUNCTION(mysql_field_flags);
-typedef struct {
+ZEND_BEGIN_MODULE_GLOBALS(mysql)
long default_link;
long num_links,num_persistent;
long max_links,max_persistent;
long allow_persistent;
long default_port;
char *default_host, *default_user, *default_password;
-} php_mysql_globals;
-
+ZEND_END_MODULE_GLOBALS(mysql);
#ifdef ZTS
-# define MySLS_D php_mysql_globals *mysql_globals
+# define MySLS_D zend_mysql_globals *mysql_globals
# define MySLS_DC , MySLS_D
# define MySLS_C mysql_globals
# define MySLS_CC , MySLS_C
# define MySG(v) (mysql_globals->v)
-# define MySLS_FETCH() php_mysql_globals *mysql_globals = ts_resource(mysql_globals_id)
+# define MySLS_FETCH() zend_mysql_globals *mysql_globals = ts_resource(mysql_module_entry.globals_id)
#else
# define MySLS_D
# define MySLS_DC
@@ -104,7 +103,6 @@ typedef struct {
# define MySLS_CC
# define MySG(v) (mysql_globals.v)
# define MySLS_FETCH()
-extern PHP_MYSQL_API php_mysql_globals mysql_globals;
#endif