* Add a new workspace for dynamic PHP extensions.

* Add a few functions to PHP's API.
* Get the MySQL extension up-to-date and thread safe.
* Add a project for building the MySQL extension under Win32.
This commit is contained in:
Zeev Suraski 1999-06-04 10:45:54 +00:00
parent a3a60dd4e7
commit 3cad348509
10 changed files with 285 additions and 34 deletions

14
ext/mysql/Readme_w32.txt Normal file
View File

@ -0,0 +1,14 @@
MySQL Extension for PHP 4.0 - Win32 README
------------------------------------------
In order to compile this extension, MySQL must be installed in a parrallel directory
to that of PHP 4.0. For example, if you have PHP 4.0's source tree set up in
C:\Projects\php4, you must have MySQL set up in C:\Projects\MySQL. The compiler
will look for include files in C:\Projects\MySQL\include and for the library
files in C:\Projects\MySQL\lib.
You can change this by editing the project settings, but it's not recommended, since
you will have to do it every time you obtain a new version of the PHP 4.0 source tree.
[4/6/1999 zeev@zend.com]

View File

@ -36,17 +36,14 @@
*/
#if COMPILE_DL
# if PHP_31
# include "../phpdl.h"
# else
# include "dl/phpdl.h"
# endif
#include "dl/phpdl.h"
#endif
#include "php.h"
#include "php_globals.h"
#include "ext/standard/php3_standard.h"
#include "php3_mysql.h"
#include "php_globals.h"
#if WIN32|WINNT
@ -151,7 +148,7 @@ php3_module_entry mysql_module_entry = {
#ifdef ZTS
int mysql_globals_id;
#else
php_mysql_globals mysql_globals;
PHP_MYSQL_API php_mysql_globals mysql_globals;
#endif
#ifdef COMPILE_DL
@ -277,7 +274,7 @@ static void php_mysql_init_globals(php_mysql_globals *mysql_globals)
int php3_minit_mysql(INIT_FUNC_ARGS)
{
#ifdef ZTS
mysql_globals_id = tsrm_allocate_id(sizeof(php_mysql_globals), php_mysql_init_globals, NULL);
mysql_globals_id = ts_allocate_id(sizeof(php_mysql_globals), php_mysql_init_globals, NULL);
#else
MySG(num_persistent)=0;
#endif
@ -359,6 +356,7 @@ static void php3_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent)
int hashed_details_length,port;
MYSQL *mysql;
MySLS_FETCH();
PLS_FETCH();
if (PG(sql_safe_mode)) {
if (ARG_COUNT(ht)>0) {
@ -598,6 +596,7 @@ static int php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAMETERS MySLS_DC)
return MySG(default_link);
}
/* {{{ proto int mysql_connect([string hostname[:port]] [, string username] [, string password])
Open a connection to a MySQL Server */
PHP_FUNCTION(mysql_connect)
@ -606,6 +605,7 @@ PHP_FUNCTION(mysql_connect)
}
/* }}} */
/* {{{ proto int mysql_pconnect([string hostname[:port]] [, string username] [, string password])
Open a persistent connection to a MySQL Server */
PHP_FUNCTION(mysql_pconnect)
@ -614,6 +614,7 @@ PHP_FUNCTION(mysql_pconnect)
}
/* }}} */
/* {{{ proto int mysql_close([int link_identifier])
Close a MySQL connection */
PHP_FUNCTION(mysql_close)
@ -621,6 +622,7 @@ PHP_FUNCTION(mysql_close)
pval *mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch (ARG_COUNT(ht)) {
case 0:
@ -649,6 +651,7 @@ PHP_FUNCTION(mysql_close)
}
/* }}} */
/* {{{ proto int mysql_select_db(string database_name [, int link_identifier])
Select a MySQL database */
PHP_FUNCTION(mysql_select_db)
@ -656,7 +659,7 @@ PHP_FUNCTION(mysql_select_db)
pval *db,*mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 1:
@ -695,6 +698,7 @@ PHP_FUNCTION(mysql_select_db)
}
/* }}} */
/* {{{ proto int mysql_create_db(string database_name [, int link_identifier])
Create a MySQL database */
PHP_FUNCTION(mysql_create_db)
@ -702,7 +706,7 @@ PHP_FUNCTION(mysql_create_db)
pval *db,*mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 1:
@ -740,6 +744,7 @@ PHP_FUNCTION(mysql_create_db)
}
/* }}} */
/* {{{ proto int mysql_drop_db(string database_name [, int link_identifier])
Drop (delete) a MySQL database */
PHP_FUNCTION(mysql_drop_db)
@ -747,7 +752,7 @@ PHP_FUNCTION(mysql_drop_db)
pval *db,*mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 1:
@ -785,6 +790,7 @@ PHP_FUNCTION(mysql_drop_db)
}
/* }}} */
/* {{{ proto int mysql_query(string query [, int link_identifier])
Send an SQL query to MySQL */
PHP_FUNCTION(mysql_query)
@ -793,7 +799,7 @@ PHP_FUNCTION(mysql_query)
int id,type;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 1:
@ -842,6 +848,7 @@ PHP_FUNCTION(mysql_query)
}
/* }}} */
/* {{{ proto int mysql_db_query(string database_name, string query [, int link_identifier])
Send an SQL query to MySQL */
PHP_FUNCTION(mysql_db_query)
@ -850,7 +857,7 @@ PHP_FUNCTION(mysql_db_query)
int id,type;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 2:
@ -907,6 +914,7 @@ PHP_FUNCTION(mysql_db_query)
}
/* }}} */
/* {{{ proto int mysql_list_dbs([int link_identifier])
List databases available on a MySQL server */
PHP_FUNCTION(mysql_list_dbs)
@ -915,7 +923,7 @@ PHP_FUNCTION(mysql_list_dbs)
int id,type;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
@ -949,6 +957,7 @@ PHP_FUNCTION(mysql_list_dbs)
}
/* }}} */
/* {{{ proto int mysql_list_tables(string database_name [, int link_identifier])
List tables in a MySQL database */
PHP_FUNCTION(mysql_list_tables)
@ -957,7 +966,7 @@ PHP_FUNCTION(mysql_list_tables)
int id,type;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 1:
@ -999,6 +1008,7 @@ PHP_FUNCTION(mysql_list_tables)
}
/* }}} */
/* {{{ proto int mysql_list_fields(string database_name, string table_name [, int link_identifier])
List MySQL result fields */
PHP_FUNCTION(mysql_list_fields)
@ -1007,7 +1017,7 @@ PHP_FUNCTION(mysql_list_fields)
int id,type;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 2:
@ -1050,6 +1060,7 @@ PHP_FUNCTION(mysql_list_fields)
}
/* }}} */
/* {{{ proto string mysql_error([int link_identifier])
Returns the text of the error message from previous MySQL operation */
PHP_FUNCTION(mysql_error)
@ -1057,7 +1068,7 @@ PHP_FUNCTION(mysql_error)
pval *mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
@ -1088,6 +1099,7 @@ PHP_FUNCTION(mysql_error)
}
/* }}} */
/* {{{ proto int mysql_errno([int link_identifier])
Returns the number of the error message from previous MySQL operation */
#ifdef mysql_errno
@ -1096,7 +1108,7 @@ PHP_FUNCTION(mysql_errno)
pval *mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
@ -1128,6 +1140,7 @@ PHP_FUNCTION(mysql_errno)
#endif
/* }}} */
/* {{{ proto int mysql_affected_rows([int link_identifier])
Get number of affected rows in previous MySQL operation */
PHP_FUNCTION(mysql_affected_rows)
@ -1135,7 +1148,7 @@ PHP_FUNCTION(mysql_affected_rows)
pval *mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
@ -1165,6 +1178,7 @@ PHP_FUNCTION(mysql_affected_rows)
}
/* }}} */
/* {{{ proto int mysql_insert_id([int link_identifier])
Get the id generated from the previous INSERT operation */
PHP_FUNCTION(mysql_insert_id)
@ -1172,7 +1186,7 @@ PHP_FUNCTION(mysql_insert_id)
pval *mysql_link;
int id,type;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
@ -1202,6 +1216,7 @@ PHP_FUNCTION(mysql_insert_id)
}
/* }}} */
/* {{{ proto int mysql_result(int result, int row [, mixed field])
Get result data */
PHP_FUNCTION(mysql_result)
@ -1314,6 +1329,7 @@ PHP_FUNCTION(mysql_result)
}
/* }}} */
/* {{{ proto int mysql_num_rows(int result)
Get number of rows in a result */
PHP_FUNCTION(mysql_num_rows)
@ -1367,6 +1383,7 @@ PHP_FUNCTION(mysql_num_fields)
}
/* }}} */
/* {{{ proto array mysql_fetch_row(int result)
Get a result row as an enumerated array */
PHP_FUNCTION(mysql_fetch_row)
@ -1419,6 +1436,7 @@ PHP_FUNCTION(mysql_fetch_row)
}
/* }}} */
static PHP_FUNCTION(mysql_fetch_hash)
{
pval *result;
@ -1474,6 +1492,7 @@ static PHP_FUNCTION(mysql_fetch_hash)
}
}
/* {{{ proto object mysql_fetch_object(int result)
Fetch a result row as an object */
PHP_FUNCTION(mysql_fetch_object)
@ -1482,11 +1501,12 @@ PHP_FUNCTION(mysql_fetch_object)
if (return_value->type==IS_ARRAY) {
return_value->type=IS_OBJECT;
return_value->value.obj.properties = return_value->value.ht;
return_value->value.obj.ce = &standard_class;
return_value->value.obj.ce = &zend_standard_class_def;
}
}
/* }}} */
/* {{{ proto array mysql_fetch_array(int result)
Fetch a result row as an associative array */
PHP_FUNCTION(mysql_fetch_array)
@ -1495,6 +1515,7 @@ PHP_FUNCTION(mysql_fetch_array)
}
/* }}} */
/* {{{ proto int mysql_data_seek(int result, int row_number)
Move internal result pointer */
PHP_FUNCTION(mysql_data_seek)
@ -1525,6 +1546,7 @@ PHP_FUNCTION(mysql_data_seek)
}
/* }}} */
/* {{{ proto array mysql_fetch_lengths(int result)
Get max data size of each column in a result */
PHP_FUNCTION(mysql_fetch_lengths)
@ -1562,6 +1584,7 @@ PHP_FUNCTION(mysql_fetch_lengths)
}
/* }}} */
static char *php3_mysql_get_field_name(int field_type)
{
switch(field_type) {
@ -1610,6 +1633,7 @@ static char *php3_mysql_get_field_name(int field_type)
}
}
/* {{{ proto object mysql_fetch_field(int result [, int field_offset])
Get column information from a result and return as an object */
PHP_FUNCTION(mysql_fetch_field)
@ -1673,6 +1697,7 @@ PHP_FUNCTION(mysql_fetch_field)
}
/* }}} */
/* {{{ proto int mysql_field_seek(int result, int field_offset)
Set result pointer to a specific field offset */
PHP_FUNCTION(mysql_field_seek)
@ -1703,12 +1728,14 @@ PHP_FUNCTION(mysql_field_seek)
}
/* }}} */
#define PHP3_MYSQL_FIELD_NAME 1
#define PHP3_MYSQL_FIELD_TABLE 2
#define PHP3_MYSQL_FIELD_LEN 3
#define PHP3_MYSQL_FIELD_TYPE 4
#define PHP3_MYSQL_FIELD_FLAGS 5
static void php3_mysql_field_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
{
pval *result, *field;
@ -1835,6 +1862,7 @@ static void php3_mysql_field_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
}
}
/* {{{ proto string mysql_field_name(int result, int field_index)
Get the name of the specified field in a result */
PHP_FUNCTION(mysql_field_name)
@ -1843,6 +1871,7 @@ PHP_FUNCTION(mysql_field_name)
}
/* }}} */
/* {{{ proto string mysql_field_table(int result, int field_offset)
Get name of the table the specified field is in */
PHP_FUNCTION(mysql_field_table)
@ -1851,6 +1880,7 @@ PHP_FUNCTION(mysql_field_table)
}
/* }}} */
/* {{{ proto int mysql_field_len(int result, int field_offet)
Returns the length of the specified field */
PHP_FUNCTION(mysql_field_len)
@ -1859,6 +1889,7 @@ PHP_FUNCTION(mysql_field_len)
}
/* }}} */
/* {{{ proto string mysql_field_type(int result, int field_offset)
Get the type of the specified field in a result */
PHP_FUNCTION(mysql_field_type)
@ -1867,6 +1898,7 @@ PHP_FUNCTION(mysql_field_type)
}
/* }}} */
/* {{{ proto string mysql_field_flags(int result, int field_offset)
Get the flags associated with the specified field in a result */
PHP_FUNCTION(mysql_field_flags)
@ -1875,6 +1907,7 @@ PHP_FUNCTION(mysql_field_flags)
}
/* }}} */
/* {{{ proto int mysql_free_result(int result)
Free result memory */
PHP_FUNCTION(mysql_free_result)

171
ext/mysql/mysql.dsp Normal file
View File

@ -0,0 +1,171 @@
# Microsoft Developer Studio Project File - Name="mysql" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=mysql - Win32 Debug_TS
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "mysql.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "mysql.mak" CFG="mysql - Win32 Debug_TS"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "mysql - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!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
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "mysql - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /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 /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 php4nts.lib /nologo /dll /machine:I386 /out:"Release/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release"
!ELSEIF "$(CFG)" == "mysql - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D ZEND_DEBUG=1 /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "_DEBUG"
# ADD RSC /l 0x40d /d "_DEBUG"
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 /nologo /dll /debug /machine:I386 /pdbtype:sept
# 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 php4nts.lib /nologo /dll /debug /machine:I386 /out:"Debug/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug"
!ELSEIF "$(CFG)" == "mysql - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_TS"
# PROP BASE Intermediate_Dir "Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /FR /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D ZEND_DEBUG=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "_DEBUG"
# ADD RSC /l 0x40d /d "_DEBUG"
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 /nologo /dll /debug /machine:I386 /pdbtype:sept
# 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 /debug /machine:I386 /out:"Debug_TS/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug_TS"
!ELSEIF "$(CFG)" == "mysql - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_TS"
# PROP BASE Intermediate_Dir "Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /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 /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"
!ENDIF
# Begin Target
# Name "mysql - Win32 Release"
# Name "mysql - Win32 Debug"
# Name "mysql - Win32 Debug_TS"
# Name "mysql - Win32 Release_TS"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\mysql.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\php3_mysql.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\Readme_w32.txt
# End Source File
# End Target
# End Project

View File

@ -36,6 +36,9 @@
#if COMPILE_DL
#undef HAVE_MYSQL
#define HAVE_MYSQL 1
# if WIN32||WINNT
# define PHP_MYSQL_API __declspec(dllexport)
# endif
#endif
#if HAVE_MYSQL
@ -43,6 +46,10 @@
#define DLEXPORT
#endif
#ifdef ZTS
#include "TSRM.h"
#endif
extern php3_module_entry mysql_module_entry;
#define mysql_module_ptr &mysql_module_entry
@ -106,7 +113,7 @@ typedef struct {
# define MySLS_CC
# define MySG(v) (mysql_globals.v)
# define MySLS_FETCH()
extern ZEND_API php_mysql_globals mysql_globals;
extern PHP_MYSQL_API php_mysql_globals mysql_globals;
#endif

View File

@ -37,7 +37,6 @@
---------------------------------------------------------------*/
#if !defined(COMPILE_DL)
#define HAVE_SNMP 0
#define HAVE_MYSQL 0
# define HAVE_ERRMSG_H 0 /*needed for mysql 3.21.17 and up*/
#define HAVE_LDAP 0
#define DBASE 0

View File

@ -190,7 +190,7 @@ extern char *strerror(int);
#endif
#if HAVE_PWD_H
# if MSVC5
# if WIN32||WINNT
#include "win32/pwd.h"
#include "win32/param.h"
# else
@ -258,8 +258,6 @@ extern pval *data;
extern char **environ;
#endif
extern PHPAPI int le_index_ptr; /* list entry type for index pointers */
extern void phperror(char *error);
extern PHPAPI void php3_error(int type, const char *format,...);
extern PHPAPI int php3_printf(const char *format,...);

View File

@ -12,7 +12,7 @@ typedef struct _php_core_globals php_core_globals;
# define PLS_CC , PLS_C
# define PG(v) (core_globals->v)
# define PLS_FETCH() php_core_globals *core_globals = ts_resource(core_globals_id)
PHPAPI extern int core_globals_id;
extern PHPAPI int core_globals_id;
#else
# define PLS_D
# define PLS_DC

View File

@ -351,7 +351,7 @@ PHPAPI void display_ini_entries(zend_module_entry *module)
/* Standard message handlers */
PHP_INI_MH(OnUpdateInt)
PHPAPI PHP_INI_MH(OnUpdateInt)
{
long *p;
#ifndef ZTS
@ -369,7 +369,7 @@ PHP_INI_MH(OnUpdateInt)
}
PHP_INI_MH(OnUpdateReal)
PHPAPI PHP_INI_MH(OnUpdateReal)
{
double *p;
#ifndef ZTS
@ -387,7 +387,7 @@ PHP_INI_MH(OnUpdateReal)
}
PHP_INI_MH(OnUpdateString)
PHPAPI PHP_INI_MH(OnUpdateString)
{
char **p;
#ifndef ZTS
@ -405,7 +405,7 @@ PHP_INI_MH(OnUpdateString)
}
PHP_INI_MH(OnUpdateStringUnempty)
PHPAPI PHP_INI_MH(OnUpdateStringUnempty)
{
char **p;
#ifndef ZTS

View File

@ -111,10 +111,10 @@ pval *cfg_get_entry(char *name, uint name_length);
/* Standard message handlers */
PHP_INI_MH(OnUpdateInt);
PHP_INI_MH(OnUpdateReal);
PHP_INI_MH(OnUpdateString);
PHP_INI_MH(OnUpdateStringUnempty);
PHPAPI PHP_INI_MH(OnUpdateInt);
PHPAPI PHP_INI_MH(OnUpdateReal);
PHPAPI PHP_INI_MH(OnUpdateString);
PHPAPI PHP_INI_MH(OnUpdateStringUnempty);
#define PHP_INI_DISPLAY_ORIG 1

29
php4ext.dsw Normal file
View File

@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "mysql"=.\ext\mysql\mysql.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################