├── TODO ├── tests ├── skipifTBD.inc ├── pic1.jpg ├── spook.png ├── test_clob_special_char.phpt ├── rollbackhandler.inc ├── skipif.inc ├── trusted_connection.inc ├── test_V6_10353.phpt ├── test_V6_10353_MemLeak.phpt ├── test_V6_execute_many.phpt ├── test_V6_091_ConnmsgWrongUser.phpt ├── test_V6_092_ConnmsgWrongPwd.phpt ├── test_V6_clob_special_char.phpt ├── test_V6_graphic_data_type.phpt ├── skipif3.inc ├── test_V6_263_XML_OUTParamsInSPs.phpt ├── test_V6_trusted_context_connect.phpt ├── test_V6_trusted_context_pconnect.phpt ├── test_V6_195_InsertRetrieveXMLData_01.phpt ├── test_V6_196_InsertRetrieveXMLData_02.phpt ├── test_V6_198_LobReadWriteFromMemory.phpt ├── test_V6_321_ResultFetchArraysLobsXMLTypes.phpt ├── skipif2.inc ├── test_050_GetAutocommit.phpt ├── skipifNot10_5.inc ├── test_052_SetAutocommit_01.phpt ├── test_063_Tables_04.phpt ├── test_080_ConnWrongDbAlias.phpt ├── test_V6_080_ConnWrongDbAlias.phpt ├── skipifNotRowcountPrefetch.inc ├── test_001_ConnDb.phpt ├── test_051_SetAutocommit.phpt ├── test_102_NumFieldsSelect_01.phpt ├── test_004_ConnWrongUserPwd.phpt ├── test_082_ConnWrongPwd.phpt ├── test_090_ConnmsgWrongDbAlias.phpt ├── test_081_ConnWrongUser.phpt ├── test_251_FreeResult_02.phpt ├── test_V6_002_ConnDbUncatalogedConn.phpt ├── test_070_Close.phpt ├── test_092_ConnmsgWrongPwd.phpt ├── test_V6_090_ConnmsgWrongDbAlias.phpt ├── test_091_ConnmsgWrongUser.phpt ├── test_002_ConnDbUncatalogedConn.phpt ├── test_005_ConnBadUserBadPwd.phpt ├── test_212_FieldDisplaySize_03.phpt ├── skipifNotTrustedContext.inc ├── test_211_FieldDisplaySize_02.phpt ├── test_011_DeleteRowCount.phpt ├── test_003_NumAffectedRows.phpt ├── test_010_UpdateRowCount.phpt ├── test_250_FreeResult_01.phpt ├── test_220_PersistentConn.phpt ├── test_023_ColumnPrivileges.phpt ├── test_V6_ini_i5_blank_userid.phpt ├── test_210_FieldDisplaySize_01.phpt ├── test_071_CloseSuccess.phpt ├── test_x001_IBMi_LUW_DB2_I5_NAMING_ON.phpt ├── test_030_Result.phpt ├── test_012_ScrollableCursorSelectRowCount01.phpt ├── test_261_FetchObjectAccess.phpt ├── test_014_ScrollableCursorRetrieveNegativeRow.phpt ├── test_034_FetchRow.phpt ├── test_192_ColumnsTable_03.phpt ├── test_194_RetrieveCLOBColScrollable.phpt ├── test_V6_260_FetchObject.phpt ├── test_019_selectRowcountPrefetchPrepOpt.phpt ├── test_026_BindParam.phpt ├── test_048_FetchArrayBinaryData.phpt ├── test_035_FetchRowMany_01.phpt ├── test_157a_FetchAssocWithoutScrollableCursorErr.phpt ├── test_221_100PersistentConns.phpt ├── test_260_FetchObject.phpt ├── test_130_PrepExecuteSelectStmt.phpt ├── test_232_FieldTypePosName.phpt ├── test_191_ColumnsTable_02.phpt ├── test_222_PersistentConnReuseWithBadPassword.phpt ├── test_6528_ScopingProblemBindParam.phpt ├── test_190_ColumnsTable_01.phpt ├── test_131_PrepareExecuteSelectStatementParams.phpt ├── test_033_ResultOutSequenceColumn.phpt ├── test_132_ExecuteStatementArrayMultipleParams.phpt ├── test_140_BindParamSelectStmt.phpt ├── test_252_FreeResult_03.phpt ├── test_241_FieldWidthPosName_02.phpt ├── test_V6_241_FieldWidthPosName_02.phpt ├── test_V6_066_TableObjects.phpt ├── escape.dat ├── test_9173_ProcedurePersistentConn.phpt ├── test_031_ResultIndexPosition.phpt ├── test_03a_ResultNonExistCol.phpt ├── test_013_ScrollableCursorSelectRowCount02.phpt ├── test_032_ResultIndexName.phpt ├── test_9194_FetchBothCLOBColumns.phpt ├── test_041_FetchArrayMany_01.phpt ├── test_6561_ReturnNULLValues.phpt ├── test_V6_041_FetchArrayMany_01.phpt ├── test_157_FetchAssocScrollableCursor_02.phpt ├── test_V6_ini_i5_trim_char.phpt ├── test_148_CallSPDiffBindPattern_01.phpt ├── test_157b_FetchAssocScrollableCursor_01.phpt ├── test_125_FieldNamePos_03.phpt ├── test_V6_ini_i5_allow_commit.phpt ├── test_049_BindParamInsertStmtNULL.phpt ├── test_RealDataType.phpt ├── test_045_FetchArrayBinaryData.phpt ├── test_153_FetchAssocSelect_04.phpt ├── test_101_InsertDeleteFieldCount.phpt ├── test_040_FetchArray.phpt ├── test_163_FetchBothBinary.phpt ├── test_1551_FetchAssocBinary.phpt ├── test_143_BindParamInsertStmtNULLParam.phpt ├── test_V6_133_ExecuteLongInputParams.phpt ├── test_112_FieldNumDiffCaseColNames.phpt ├── test_159a_FetchAssocSeveralRows_02.phpt ├── test_V6_ini_i5_max_pconnect.phpt ├── test_110_FieldNum.phpt ├── test_V6_ini_i5_servermode_subsystem.phpt ├── test_007_pConnPassingOpts.phpt ├── test_006_ConnPassingOpts.phpt ├── test_144_BindParamInsertStmtPARAM_FILE.phpt ├── test_120_FieldName.phpt ├── test_195_InsertRetrieveXMLData_01.phpt ├── test_V6_310_ClientInfo.phpt ├── test_213_FieldDisplaySize_04.phpt ├── test_6572_SQLStringsContNULLChar.phpt ├── test_020_RollbackDelete.phpt ├── test_022_RollbackInsert.phpt ├── test_V6_180_StmtErrMsg.phpt ├── test_230_FieldTypePos.phpt ├── test_gh_62.phpt ├── test_310_ClientInfo.phpt ├── test_015_InsertDeleteRowCount_01.phpt ├── test_016_InsertDeleteRowCount_02.phpt ├── test_133_ExecuteLongInputParams.phpt ├── test_240_FieldWidthPosName_01.phpt ├── test_V6_hebrew.phpt ├── test_V6_240_FieldWidthPosName_01.phpt ├── test_231_FieldTypeName.phpt ├── test_180_StmtErrMsg.phpt ├── test_6755_ExtraNULLChar_ResultCLOBCol.phpt ├── test_024_ForeignKeys.phpt ├── test_060_Tables_01.phpt ├── test_100_SelectDeleteInsertFieldCount.phpt ├── test_042_FetchArrayMany_02.phpt ├── test_141_BindParamSelectStmtMultipleParams_01.phpt ├── test_018_selectRowcountPrefetchSetOpt.phpt ├── test_017_selectRowcountPrefetchSTMTOpt.phpt ├── test_111_FieldNumAddCol.phpt ├── connection.inc ├── test_061_Tables_02.phpt ├── test_122_FieldNameDiffCaseColNames.phpt ├── resume_000190.txt ├── test_062_Tables_03.phpt ├── test_321_ResultFetchArraysLobsXMLTypes.phpt ├── test_121_FieldNameAddCol.phpt ├── test_066_TableObjects.phpt ├── resume_000140.txt ├── resume_000130.txt ├── test_065_FilterTableName.phpt ├── test_V6_ini_i5_check_pconnect.phpt ├── test_064_Tables_05.phpt ├── resume_000150.txt ├── test_159_FetchAssocSeveralRows_01.phpt ├── test_V6_ini_i5_all_pconnect.phpt ├── test_142_BindParamSelectStmtMultipleParams_02.phpt ├── test_025_PrimaryKeys.phpt ├── test_6792_FieldTypeRetStrDatetimeTimestamp.phpt ├── test_146_CallSPINAndOUTParams.phpt ├── test_V6_6792_FieldTypeRetStrDatetimeTimestamp.phpt ├── test_V6_ini_i5_guard_profile.phpt ├── test_boolean.phpt ├── test_V6_ini_i5_sys_naming.phpt ├── test_145_BindRetrieveNULLEmptyString.phpt ├── test_021_CommitDelete.phpt ├── test_197_StatisticsIndexes.phpt ├── test_V6_148_CallSPDiffBindPattern_01.phpt ├── test_149_CallSPDiffBindPattern_02.phpt ├── test_046_FetchArrayMany_05.phpt ├── test_V6_149_CallSPDiffBindPattern_02.phpt ├── test_V6_197_StatisticsIndexes_with_lib_1028_issue.phpt ├── test_queryTimeout.phpt ├── skipif.PASE ├── test_graphic_data_type.phpt ├── test_V6_197_StatisticsIndexes.phpt ├── test_147_CallSPINAndOUTParamsMultipleTimes.phpt ├── test_196_InsertRetrieveXMLData_02.phpt ├── test_check_rollback.phpt ├── test_198_LobReadWriteFromMemory.phpt ├── test_053_SetAutocommit_02.phpt ├── test_047_FetchArrayMany_06.phpt ├── test_152_FetchAssocSelect_03.phpt └── test_V6_timestamp.phpt ├── CREDITS ├── .gitignore ├── composer.json ├── config.w32 ├── CONTRIBUTING.md └── .travis.yml /TODO: -------------------------------------------------------------------------------- 1 | TODO: 2 | -------------------------------------------------------------------------------- /tests/skipifTBD.inc: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /tests/pic1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/php/pecl-database-ibm_db2/HEAD/tests/pic1.jpg -------------------------------------------------------------------------------- /tests/spook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/php/pecl-database-ibm_db2/HEAD/tests/spook.png -------------------------------------------------------------------------------- /tests/test_clob_special_char.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/php/pecl-database-ibm_db2/HEAD/tests/test_clob_special_char.phpt -------------------------------------------------------------------------------- /tests/rollbackhandler.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/skipif.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/trusted_connection.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | IBM_DB2 2 | Sushant Koduru, Lynh Nguyen, Kanchana Padmanabhan, Dan Scott, Helmut Tessarek, Edin Kadribasic, Kellen Bombardier, Tony Cairns, Ambrish Bhargava, Rahul Priyadarshi, Calvin Buckley, Kevin Adler, Jesse Gorzinski 3 | -------------------------------------------------------------------------------- /tests/test_V6_10353.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_10353_MemLeak.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_execute_many.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_091_ConnmsgWrongUser.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_092_ConnmsgWrongPwd.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_clob_special_char.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_graphic_data_type.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/skipif3.inc: -------------------------------------------------------------------------------- 1 | DBMS_NAME == 'AS') { 10 | die('skip'); 11 | } 12 | 13 | ?> 14 | -------------------------------------------------------------------------------- /tests/test_V6_263_XML_OUTParamsInSPs.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_trusted_context_connect.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_trusted_context_pconnect.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_195_InsertRetrieveXMLData_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_196_InsertRetrieveXMLData_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_198_LobReadWriteFromMemory.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/test_V6_321_ResultFetchArraysLobsXMLTypes.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECTF-- 11 | TBD 12 | 13 | -------------------------------------------------------------------------------- /tests/skipif2.inc: -------------------------------------------------------------------------------- 1 | DBMS_VER, 1, 2) == '08') { 10 | die('skip'); 11 | } 12 | 13 | ?> 14 | -------------------------------------------------------------------------------- /tests/test_050_GetAutocommit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: get autocommit value 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 17 | --EXPECT-- 18 | 1 19 | -------------------------------------------------------------------------------- /tests/skipifNot10_5.inc: -------------------------------------------------------------------------------- 1 | DBMS_NAME != 'AS') { 9 | die('skip'); 10 | } 11 | 12 | $client = db2_client_info( $conn ); 13 | $minversion = "10.05.0000"; 14 | if ( ($client->DRIVER_VER < $minversion ) ) { 15 | die('skip'); 16 | } 17 | 18 | ?> 19 | -------------------------------------------------------------------------------- /tests/test_052_SetAutocommit_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: set autocommit with db2_autocommit 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 19 | --EXPECT-- 20 | 0 21 | -------------------------------------------------------------------------------- /tests/test_063_Tables_04.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - 4 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 19 | --EXPECTF-- 20 | Resource id #%d 21 | -------------------------------------------------------------------------------- /tests/test_080_ConnWrongDbAlias.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_error() - wrong database alias 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 20 | --EXPECTF-- 21 | string(5) "%s" 22 | -------------------------------------------------------------------------------- /tests/test_V6_080_ConnWrongDbAlias.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_error() - wrong database alias 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECTF-- 22 | 42705 23 | -------------------------------------------------------------------------------- /tests/skipifNotRowcountPrefetch.inc: -------------------------------------------------------------------------------- 1 | DBMS_VER < $minversion) || ($client->DRIVER_VER < $minversion ) ) { 16 | die('skip'); 17 | } 18 | 19 | ?> 20 | -------------------------------------------------------------------------------- /tests/test_001_ConnDb.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: connect to a database 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 20 | --EXPECT-- 21 | Connection succeeded. 22 | -------------------------------------------------------------------------------- /tests/test_051_SetAutocommit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: set autocommit value in connection string 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_AUTOCOMMIT_OFF 12 | ); 13 | 14 | $conn = db2_connect($database, $user, $password, $options); 15 | 16 | $ac = db2_autocommit( $conn ); 17 | 18 | echo $ac; 19 | 20 | ?> 21 | --EXPECT-- 22 | 0 23 | -------------------------------------------------------------------------------- /tests/test_102_NumFieldsSelect_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_fields() - select 3 | --SKIPIF-- 4 | 7 | --FILE-- 8 | 22 | --EXPECT-- 23 | 1 24 | -------------------------------------------------------------------------------- /tests/test_004_ConnWrongUserPwd.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_connect() - wrong user/pwd 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 18 | --EXPECT-- 19 | connect failed, test succeeded 20 | -------------------------------------------------------------------------------- /tests/test_082_ConnWrongPwd.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_error() - wrong password 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 24 | --EXPECTF-- 25 | 0800%d 26 | -------------------------------------------------------------------------------- /tests/test_090_ConnmsgWrongDbAlias.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_errormsg() - wrong database alias 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECTF-- 22 | [IBM][CLI Driver] %s SQLCODE=-%d 23 | -------------------------------------------------------------------------------- /tests/test_081_ConnWrongUser.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_error() - wrong username 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 24 | --EXPECTF-- 25 | 0800%d 26 | -------------------------------------------------------------------------------- /tests/test_251_FreeResult_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_free_result() - 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECT-- 22 | bool(true) 23 | bool(true) 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # phpize stuff 2 | .libs 3 | Makefile* 4 | *.m4 5 | autom4te.cache 6 | build 7 | config.* 8 | configure* 9 | ibm_db2.la 10 | ibm_db2.lo 11 | install-sh 12 | libtool 13 | ltmain.sh 14 | missing 15 | mkinstalldirs 16 | modules 17 | run-tests.php 18 | tmp-php.ini 19 | 20 | # phpt generated files 21 | tests/*.diff 22 | tests/*.exp 23 | tests/*.log 24 | tests/*.out 25 | tests/*.sh 26 | tests/*.php 27 | 28 | # test crud 29 | tests/escape_out.dat 30 | 31 | # downloaded cli driver 32 | clidriver 33 | 34 | -------------------------------------------------------------------------------- /tests/test_V6_002_ConnDbUncatalogedConn.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: connect to a database (uncataloged connection) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECT-- 22 | Connection succeeded. 23 | -------------------------------------------------------------------------------- /tests/test_070_Close.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_close() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 24 | --EXPECTF-- 25 | resource(%d) of type (DB2 Connection) 26 | bool(true) 27 | -------------------------------------------------------------------------------- /tests/test_092_ConnmsgWrongPwd.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_errormsg() - wrong password 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 24 | --EXPECTF-- 25 | [IBM][CLI Driver] %s SQLSTATE=%d SQLCODE=-%d 26 | -------------------------------------------------------------------------------- /tests/test_V6_090_ConnmsgWrongDbAlias.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_errormsg() - wrong database alias 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECTF-- 22 | Relational database x not in relational database directory. SQLCODE=-950 23 | 24 | -------------------------------------------------------------------------------- /tests/test_091_ConnmsgWrongUser.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_conn_errormsg() - wrong username 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 24 | --EXPECTF-- 25 | [IBM][CLI Driver] %s SQLSTATE=%d SQLCODE=-%d 26 | -------------------------------------------------------------------------------- /tests/test_002_ConnDbUncatalogedConn.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: connect to a database (uncataloged connection) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 21 | --EXPECT-- 22 | Connection succeeded. 23 | -------------------------------------------------------------------------------- /tests/test_005_ConnBadUserBadPwd.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_connect() - bad user / bad pwd 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 23 | --EXPECT-- 24 | Ooops 25 | -------------------------------------------------------------------------------- /tests/test_212_FieldDisplaySize_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_display_size() - 3 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 22 | --EXPECT-- 23 | SALES_PERSON size 15 24 | 2 size 15 25 | -------------------------------------------------------------------------------- /tests/skipifNotTrustedContext.inc: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /tests/test_211_FieldDisplaySize_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_display_size() - 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 25 | --EXPECT-- 26 | 1 size 15 27 | 2 size 15 28 | 3 size 11 29 | 4 size 0 30 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pecl/ibm_db2", 3 | "type": "php-ext", 4 | "license": "Apache-2.0", 5 | "description": "Extension for IBM Db2 (LUW/i/z) and other compatible databases", 6 | "require": { 7 | "php": ">= 7.3.0" 8 | }, 9 | "php-ext": { 10 | "extension-name": "ibm_db2", 11 | "configure-options": [ 12 | { 13 | "name": "with-IBM_DB2", 14 | "description": "Enable ibm_db2 support. DIR is the path to the DB2 install prefix.", 15 | "needs-value": true 16 | } 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/test_011_DeleteRowCount.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10.0" ); 15 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 16 | db2_rollback($conn); 17 | db2_close($conn); 18 | } 19 | else { 20 | echo "Connection failed."; 21 | } 22 | 23 | ?> 24 | --EXPECT-- 25 | Number of affected rows: 3 26 | -------------------------------------------------------------------------------- /tests/test_003_NumAffectedRows.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Count number of affected rows 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 24 | --EXPECT-- 25 | Number of affected rows: 7 26 | -------------------------------------------------------------------------------- /tests/test_010_UpdateRowCount.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - update 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 24 | --EXPECT-- 25 | Number of affected rows: 4 26 | -------------------------------------------------------------------------------- /tests/test_250_FreeResult_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_free_result() - 1 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 25 | --EXPECT-- 26 | bool(true) 27 | bool(true) 28 | bool(true) 29 | -------------------------------------------------------------------------------- /tests/test_220_PersistentConn.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_pconnect() - test persistent connection 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 24 | --EXPECT-- 25 | Number of affected rows: 4 26 | -------------------------------------------------------------------------------- /tests/test_023_ColumnPrivileges.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_column_privileges -- tests the db2_column_privileges functionality 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 28 | --EXPECTF-- 29 | ANIMALS 30 | BREED 31 | YES 32 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_blank_userid.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i security restrict blank db,uid,pwd (unless customer allow flag) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 30 | --EXPECT-- 31 | failed 32 | success 33 | 34 | -------------------------------------------------------------------------------- /tests/test_210_FieldDisplaySize_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_display_size() - 1 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 24 | --EXPECT-- 25 | col:0 and size: 6 26 | col:1 and size: 9 27 | col:2 and size: 6 28 | col:3 and size: 5 29 | col:4 and size: 6 30 | col:5 and size: 9 31 | col:6 and size: 9 32 | -------------------------------------------------------------------------------- /tests/test_071_CloseSuccess.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_close() - success 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 31 | --EXPECT-- 32 | db2_close succeeded 33 | -------------------------------------------------------------------------------- /tests/test_x001_IBMi_LUW_DB2_I5_NAMING_ON.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - LUW and IBM i system naming mode DB2_I5_NAMING_ON 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_I5_NAMING_ON, 'i5_libl'=>"QTEMP FROG", 'i5_curlib'=>"FROG")); 9 | if (!$conn) die("connect\n".db2_stmt_errormsg()."\n"); 10 | $stmt = db2_exec( $conn, "SELECT * FROM $user/animals ORDER BY breed" ); 11 | if (!$stmt) die("stmt\n".db2_stmt_errormsg()."\n"); 12 | while ($row = db2_fetch_array($stmt)) { 13 | echo "fetch\n".db2_stmt_errormsg()."\n"; 14 | var_dump($row); 15 | } 16 | echo "success\n"; 17 | ?> 18 | --EXPECTF-- 19 | %s 20 | success 21 | 22 | -------------------------------------------------------------------------------- /tests/test_030_Result.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 29 | --EXPECT-- 30 | string(3) "cat" 31 | string(16) "Pook " 32 | -------------------------------------------------------------------------------- /tests/test_012_ScrollableCursorSelectRowCount01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - select - scrollable cursor 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE) ); 14 | db2_execute($stmt); 15 | $row = db2_fetch_both($stmt); 16 | var_dump($row); 17 | db2_close($conn); 18 | } 19 | else { 20 | echo "Connection failed."; 21 | } 22 | 23 | ?> 24 | --EXPECT-- 25 | array(2) { 26 | ["NAME"]=> 27 | string(16) "Pook " 28 | [0]=> 29 | string(16) "Pook " 30 | } 31 | -------------------------------------------------------------------------------- /tests/test_261_FetchObjectAccess.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_object() -- access 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | NAME}, my little {$pet->BREED}!"; 22 | } 23 | db2_close($conn); 24 | 25 | } 26 | else { 27 | echo "Connection failed.\n"; 28 | } 29 | 30 | ?> 31 | --EXPECT-- 32 | Come here, Pook, my little cat! 33 | -------------------------------------------------------------------------------- /tests/test_014_ScrollableCursorRetrieveNegativeRow.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: scrollable cursor; retrieve negative row 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE) ); 13 | db2_execute($stmt); 14 | $rc = db2_fetch_row($stmt,-1); 15 | printf( "\nFetch row -1: %s\n", $rc ? "true" : "false" ); 16 | 17 | db2_close($conn); 18 | ?> 19 | --EXPECTREGEX-- 20 | (PHP )?Warning:\s+db2_fetch_row\(\): Requested row number must be a positive value in .*?test_014_ScrollableCursorRetrieveNegativeRow.php on line 9 21 | 22 | Fetch row -1: false 23 | -------------------------------------------------------------------------------- /tests/test_034_FetchRow.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_row() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 30 | --EXPECT-- 31 | 10 Sanders 20 Mgr 7 18357.50 32 | -------------------------------------------------------------------------------- /tests/test_192_ColumnsTable_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_columns() - 3 - table 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECTF-- 28 | %s,EMP_RESUME,EMPNO,NO 29 | %s,EMP_RESUME,RESUME_FORMAT,NO 30 | %s,EMP_RESUME,RESUME,YES 31 | -------------------------------------------------------------------------------- /tests/test_194_RetrieveCLOBColScrollable.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: retrieve CLOB columns: scrollable cursor 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE)); 20 | $i = 1; 21 | while ($row = db2_fetch_array($result, $i++)) { 22 | print_r($row); 23 | } 24 | ?> 25 | --EXPECTREGEX-- 26 | (PHP )?Warning:\s*db2_fetch_array\(\): Fetch Failure in .*?test_194_RetrieveCLOBColScrollable.php on line 16 27 | -------------------------------------------------------------------------------- /tests/test_V6_260_FetchObject.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_object() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 26 | --EXPECTF-- 27 | %s{ 28 | ["ID"]=> 29 | int(0) 30 | ["BREED"]=> 31 | string(3) "cat" 32 | ["NAME"]=> 33 | string(16) "Pook " 34 | ["WEIGHT"]=> 35 | string(4) "3.20" 36 | } 37 | -------------------------------------------------------------------------------- /tests/test_019_selectRowcountPrefetchPrepOpt.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - select (rowcount prefetch) - prep option 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_ROWCOUNT_PREFETCH_ON); 15 | $stmt = db2_prepare( $conn, "SELECT * from animals WHERE weight < 10.0", $options ); 16 | db2_execute( $stmt ); 17 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 18 | db2_close($conn); 19 | } 20 | else { 21 | echo "Connection failed."; 22 | } 23 | 24 | ?> 25 | --EXPECT-- 26 | Number of affected rows: 4 27 | -------------------------------------------------------------------------------- /tests/test_026_BindParam.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param -- test db2_bind_param for a clean exit 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECT-- 28 | This script should exit cleanly with no segfaults 29 | -------------------------------------------------------------------------------- /tests/test_048_FetchArrayBinaryData.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array() - fetch one row of binary data 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 28 | --EXPECT-- 29 | The files are the same...good. 30 | -------------------------------------------------------------------------------- /tests/test_035_FetchRowMany_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_row() - several rows 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 22 | --EXPECT-- 23 | 0, 24 | 1, 25 | 2, 26 | 3, 27 | 4, 28 | 5, 29 | 6, 30 | 7, 31 | 8, 32 | 9, 33 | 10, 34 | 11, 35 | 12, 36 | 13, 37 | 14, 38 | 15, 39 | 16, 40 | 17, 41 | 18, 42 | 19, 43 | 20, 44 | 21, 45 | 22, 46 | 23, 47 | 24, 48 | 25, 49 | 26, 50 | 27, 51 | 28, 52 | 29, 53 | 30, 54 | 31, 55 | 32, 56 | 33, 57 | 34, 58 | -------------------------------------------------------------------------------- /tests/test_157a_FetchAssocWithoutScrollableCursorErr.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - positioned without scrollable cursor (error) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 25 | --EXPECTREGEX-- 26 | (PHP )?Warning:\s+db2_fetch_assoc\(\): Fetch Failure in .*? on line \d+ 27 | -------------------------------------------------------------------------------- /tests/test_221_100PersistentConns.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_pconnect() - test 100 persistent connections 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 29 | --EXPECT-- 30 | Number of affected rows: 4 31 | -------------------------------------------------------------------------------- /tests/test_260_FetchObject.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_object() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 26 | --EXPECTF-- 27 | object(stdClass)#%d (4) { 28 | ["ID"]=> 29 | int(0) 30 | ["BREED"]=> 31 | string(3) "cat" 32 | ["NAME"]=> 33 | string(16) "Pook " 34 | ["WEIGHT"]=> 35 | string(4) "3.20" 36 | } 37 | -------------------------------------------------------------------------------- /tests/test_130_PrepExecuteSelectStmt.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_prepare / db2_execute: SELECT statement 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 26 | --EXPECT-- 27 | array(4) { 28 | [0]=> 29 | int(0) 30 | [1]=> 31 | string(3) "cat" 32 | [2]=> 33 | string(16) "Pook " 34 | [3]=> 35 | string(4) "3.20" 36 | } 37 | -------------------------------------------------------------------------------- /tests/test_232_FieldTypePosName.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_type() - by position and name 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECT-- 28 | SALES_DATE:date 29 | SALES_PERSON:string 30 | REGION:string 31 | SALES:int 32 | : 33 | ----- 34 | bool(false) 35 | bool(false) 36 | -------------------------------------------------------------------------------- /tests/test_191_ColumnsTable_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_columns() - 2 - table 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 28 | --EXPECTF-- 29 | %s,EMP_PHOTO,EMPNO,NO 30 | %s,EMP_PHOTO,PHOTO_FORMAT,NO 31 | %s,EMP_PHOTO,PICTURE,YES 32 | done! 33 | -------------------------------------------------------------------------------- /tests/test_222_PersistentConnReuseWithBadPassword.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_pconnect() - test persistent connection won't be reused with bad password 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 30 | --EXPECT-- 31 | OK 32 | -------------------------------------------------------------------------------- /tests/test_6528_ScopingProblemBindParam.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6528 -- scoping problem in db2_bind_param 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 31 | --EXPECT-- 32 | array(1) { 33 | [0]=> 34 | string(4) "Pook" 35 | } 36 | -------------------------------------------------------------------------------- /config.w32: -------------------------------------------------------------------------------- 1 | ARG_WITH("ibm_db2", "Native support for IBM DB2", "no"); 2 | 3 | if (PHP_IBM_DB2 != "no") { 4 | db2_lib_paths = PHP_PHP_BUILD + "\\lib\\db2;"; 5 | db2_include_paths = PHP_PHP_BUILD + "\\include\\db2;"; 6 | 7 | if (PHP_IBM_DB2 != "yes") { 8 | db2_lib_paths += PHP_IBM_DB2 + "\\lib;"; 9 | db2_include_paths += PHP_IBM_DB2 + "\\include;"; 10 | } 11 | 12 | if (CHECK_LIB("db2cli.lib", "ibm_db2", db2_lib_paths) || CHECK_LIB("db2cli64.lib", "ibm_db2", db2_lib_paths)) { 13 | EXTENSION("ibm_db2", "ibm_db2.c"); 14 | CHECK_HEADER_ADD_INCLUDE('sql.h', 'CFLAGS_IBM_DB2', db2_include_paths); 15 | CHECK_HEADER_ADD_INCLUDE('sqlext.h', 'CFLAGS_IBM_DB2', db2_include_paths); 16 | CHECK_HEADER_ADD_INCLUDE('sqlcli1.h', 'CFLAGS_IBM_DB2',db2_include_paths); 17 | AC_DEFINE('HAVE_IBM_DB2', 1, 'Have IBM DB2 client library'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/test_190_ColumnsTable_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_columns() - 1 - table 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 28 | --EXPECTF-- 29 | %s/EMPNO 30 | %s/FIRSTNME 31 | %s/MIDINIT 32 | %s/LASTNAME 33 | %s/WORKDEPT 34 | %s/PHONENO 35 | %s/HIREDATE 36 | %s/JOB 37 | %s/EDLEVEL 38 | %s/SEX 39 | %s/BIRTHDATE 40 | %s/SALARY 41 | %s/BONUS 42 | %s/COMM 43 | done! 44 | -------------------------------------------------------------------------------- /tests/test_131_PrepareExecuteSelectStatementParams.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_prepare / db2_execute: SELECT statement with parameter 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECT-- 28 | array(4) { 29 | [0]=> 30 | int(0) 31 | [1]=> 32 | string(3) "cat" 33 | [2]=> 34 | string(16) "Pook " 35 | [3]=> 36 | string(4) "3.20" 37 | } 38 | -------------------------------------------------------------------------------- /tests/test_033_ResultOutSequenceColumn.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result (out of sequence column requests) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 30 | --EXPECT-- 31 | string(4) "3.20" 32 | string(3) "cat" 33 | string(16) "Pook " 34 | -------------------------------------------------------------------------------- /tests/test_132_ExecuteStatementArrayMultipleParams.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_execute statement with array of multiple parameters 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 29 | --EXPECT-- 30 | array(4) { 31 | [0]=> 32 | int(0) 33 | [1]=> 34 | string(3) "cat" 35 | [2]=> 36 | string(16) "Pook " 37 | [3]=> 38 | string(4) "3.20" 39 | } 40 | -------------------------------------------------------------------------------- /tests/test_140_BindParamSelectStmt.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: SELECT statement 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 32 | --EXPECT-- 33 | array(4) { 34 | [0]=> 35 | int(0) 36 | [1]=> 37 | string(3) "cat" 38 | [2]=> 39 | string(16) "Pook " 40 | [3]=> 41 | string(4) "3.20" 42 | } 43 | -------------------------------------------------------------------------------- /tests/test_252_FreeResult_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_free_result() - 3 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 31 | --EXPECT-- 32 | 1 , Java 33 | -------------------------------------------------------------------------------- /tests/test_241_FieldWidthPosName_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_width() - by position and name 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECT-- 28 | int(10) 29 | int(15) 30 | int(15) 31 | int(11) 32 | 33 | ----- 34 | int(6) 35 | int(9) 36 | int(6) 37 | int(5) 38 | int(6) 39 | int(9) 40 | int(9) 41 | -------------------------------------------------------------------------------- /tests/test_V6_241_FieldWidthPosName_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_width() - by position and name 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 27 | --EXPECT-- 28 | int(10) 29 | int(15) 30 | int(15) 31 | int(4) 32 | 33 | ----- 34 | int(2) 35 | int(9) 36 | int(2) 37 | int(5) 38 | int(2) 39 | int(1794) 40 | int(1794) 41 | -------------------------------------------------------------------------------- /tests/test_V6_066_TableObjects.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - Play with table objects 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | TABLE_NAME)) { 16 | echo 'Schema: ' . $row->TABLE_SCHEM . "\n"; 17 | echo 'Name: ' . $row->TABLE_NAME . "\n"; 18 | echo 'Type: ' . $row->TABLE_TYPE . "\n"; 19 | echo 'Remarks: ' . $row->REMARKS . "\n\n"; 20 | } 21 | } 22 | 23 | db2_free_result($result); 24 | db2_close($conn); 25 | 26 | ?> 27 | --EXPECTF-- 28 | Schema: %s 29 | Name: ANIMALS 30 | Type: TABLE 31 | Remarks: 32 | 33 | Schema: %s 34 | Name: ANIME_CAT 35 | Type: VIEW 36 | Remarks: 37 | 38 | -------------------------------------------------------------------------------- /tests/escape.dat: -------------------------------------------------------------------------------- 1 | 2 | Original: Some random special characters: 3 | , , \ , ' , " . 4 | db2_escape_string: Some random special characters: 5 | , , \ , ' , " . 6 | 7 | Original: Backslash (\). Single quote ('). Double quote (") 8 | db2_escape_string: Backslash (\). Single quote ('). Double quote (") 9 | 10 | Original: The NULL character \0 must be escaped manually 11 | db2_escape_string: The NULL character \0 must be escaped manually 12 | 13 | Original: Intersting characters must be escaped manually: \x1a , \x00 . 14 | db2_escape_string: Intersting characters must be escaped manually: \x1a , \x00 . 15 | 16 | Original: Nothing to quote 17 | db2_escape_string: Nothing to quote 18 | 19 | Original: 200676 20 | db2_escape_string: 200676 21 | 22 | Original: 23 | db2_escape_string: 24 | -------------------------------------------------------------------------------- /tests/test_9173_ProcedurePersistentConn.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 9173 -- db2_procedures & db2_ procedure_columns doesn't work on persistent connections 3 | --SKIPIF-- 4 | 7 | --FILE-- 8 | 25 | --EXPECTF-- 26 | array(8) { 27 | ["PROCEDURE_CAT"]=> 28 | %s 29 | ["PROCEDURE_SCHEM"]=> 30 | string(%d) "%s" 31 | ["PROCEDURE_NAME"]=> 32 | string(%d) "%s" 33 | ["NUM_INPUT_PARAMS"]=> 34 | int(%d) 35 | ["NUM_OUTPUT_PARAMS"]=> 36 | int(%d) 37 | ["NUM_RESULT_SETS"]=> 38 | int(%d) 39 | ["REMARKS"]=> 40 | %s 41 | ["PROCEDURE_TYPE"]=> 42 | int(%d) 43 | } 44 | -------------------------------------------------------------------------------- /tests/test_031_ResultIndexPosition.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result (index by position) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 32 | --EXPECT-- 33 | int(0) 34 | string(3) "cat" 35 | string(16) "Pook " 36 | string(4) "3.20" 37 | -------------------------------------------------------------------------------- /tests/test_03a_ResultNonExistCol.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result -- request a column that does not exist 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECT-- 34 | string(3) "cat" 35 | string(16) "Pook " 36 | NULL 37 | -------------------------------------------------------------------------------- /tests/test_013_ScrollableCursorSelectRowCount02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - select - scrollable CURSOR 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE) ); 14 | db2_execute($stmt); 15 | $row = db2_fetch_both($stmt); 16 | var_dump($row); 17 | db2_close($conn); 18 | } 19 | else { 20 | echo "Connection failed."; 21 | } 22 | 23 | ?> 24 | --EXPECT-- 25 | array(8) { 26 | ["ID"]=> 27 | int(0) 28 | [0]=> 29 | int(0) 30 | ["BREED"]=> 31 | string(3) "cat" 32 | [1]=> 33 | string(3) "cat" 34 | ["NAME"]=> 35 | string(16) "Pook " 36 | [2]=> 37 | string(16) "Pook " 38 | ["WEIGHT"]=> 39 | string(4) "3.20" 40 | [3]=> 41 | string(4) "3.20" 42 | } 43 | -------------------------------------------------------------------------------- /tests/test_032_ResultIndexName.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result (index by name) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 32 | --EXPECT-- 33 | int(6) 34 | string(5) "llama" 35 | string(16) "Sweater " 36 | string(6) "150.00" 37 | -------------------------------------------------------------------------------- /tests/test_9194_FetchBothCLOBColumns.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 9194 -- db2_fetch_both doesn't work on null CLOB columns 3 | --SKIPIF-- 4 | 7 | --FILE-- 8 | 35 | --EXPECT-- 36 | array(4) { 37 | ["ID"]=> 38 | int(1) 39 | [0]=> 40 | int(1) 41 | ["MYCLOB"]=> 42 | NULL 43 | [1]=> 44 | NULL 45 | } 46 | -------------------------------------------------------------------------------- /tests/test_041_FetchArrayMany_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array several rows 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 32 | --EXPECT-- 33 | 4 budgerigar Gizmo 0.20 34 | 0 cat Pook 3.20 35 | 1 dog Peaches 12.30 36 | 5 goat Rickety Ride 9.70 37 | 3 gold fish Bubbles 0.10 38 | 2 horse Smarty 350.00 39 | 6 llama Sweater 150.00 40 | 41 | Number of rows: 7 42 | -------------------------------------------------------------------------------- /tests/test_6561_ReturnNULLValues.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6561 -- returning NULL values from column functions 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECT-- 34 | array(1) { 35 | [0]=> 36 | int(7) 37 | } 38 | -------------------------------------------------------------------------------- /tests/test_V6_041_FetchArrayMany_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array several rows 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 32 | --EXPECT-- 33 | 4 budgerigar Gizmo .20 34 | 0 cat Pook 3.20 35 | 1 dog Peaches 12.30 36 | 5 goat Rickety Ride 9.70 37 | 3 gold fish Bubbles .10 38 | 2 horse Smarty 350.00 39 | 6 llama Sweater 150.00 40 | 41 | Number of rows: 7 42 | -------------------------------------------------------------------------------- /tests/test_157_FetchAssocScrollableCursor_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - positioned with scrollable cursor 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | DB2_SCROLLABLE)); 17 | 18 | $i=2; 19 | while ($row = db2_fetch_assoc($result, $i)) { 20 | printf ("%-5d %-16s %-32s %10s\n", 21 | $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']); 22 | 23 | $i = $i + 2; 24 | } 25 | } 26 | 27 | ?> 28 | --EXPECT-- 29 | 0 Pook cat 3.20 30 | 5 Rickety Ride goat 9.70 31 | 2 Smarty horse 350.00 32 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_trim_char.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 2.0.3 - IBM i trim char (operator override) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 30 | --EXPECTF-- 31 | IBM_DB_i5_char_trim=0 32 | string(16) "Pook " 33 | IBM_DB_i5_char_trim=1 34 | string(4) "Pook" 35 | 36 | -------------------------------------------------------------------------------- /tests/test_148_CallSPDiffBindPattern_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure in a different binding pattern 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 28 | --EXPECT-- 29 | 5 , bug 58215 1 , bug 58215 2 30 | -------------------------------------------------------------------------------- /tests/test_157b_FetchAssocScrollableCursor_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - positioned with scrollable cursor 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | DB2_SCROLLABLE)); 17 | $result = db2_execute($stmt); 18 | 19 | $i=2; 20 | while ($row = db2_fetch_assoc($stmt, $i)) { 21 | printf ("%-5d %-16s %-32s %10s\n", 22 | $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']); 23 | 24 | $i = $i + 2; 25 | } 26 | } 27 | 28 | ?> 29 | --EXPECT-- 30 | 0 Pook cat 3.20 31 | 5 Rickety Ride goat 9.70 32 | 2 Smarty horse 350.00 33 | -------------------------------------------------------------------------------- /tests/test_125_FieldNamePos_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_name() - by position 3 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECT-- 34 | 0:SALES_DATE 35 | 1:SALES_PERSON 36 | 2:REGION 37 | 3:SALES 38 | 39 | ----- 40 | 0:ID 41 | 1:NAME 42 | 2:DEPT 43 | 3:JOB 44 | 4:YEARS 45 | 5:SALARY 46 | 6:COMM 47 | 48 | ----- 49 | Region:REGION 50 | 5:SALARY 51 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_allow_commit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i test ini isolation modes (operator issue) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECT-- 34 | Number of affected rows: 7 35 | success 36 | 37 | -------------------------------------------------------------------------------- /tests/test_049_BindParamInsertStmtNULL.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: INSERT statement - NULL parameter 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECT-- 34 | array(4) { 35 | [0]=> 36 | NULL 37 | [1]=> 38 | string(5) "ghost" 39 | [2]=> 40 | NULL 41 | [3]=> 42 | NULL 43 | } 44 | -------------------------------------------------------------------------------- /tests/test_RealDataType.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Real datatype test. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | -2.3399999141693115 38 | -2.3399999141693115 39 | -------------------------------------------------------------------------------- /tests/test_045_FetchArrayBinaryData.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array() - binary data 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | The files are the same...good. 38 | Iterated over 8 rows. 39 | -------------------------------------------------------------------------------- /tests/test_153_FetchAssocSelect_04.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - simple select 4 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 26 | --EXPECT-- 27 | 28 | 10 Head Office 160 Corporate New York 29 | 15 New England 50 Eastern Boston 30 | 20 Mid Atlantic 10 Eastern Washington 31 | 38 South Atlantic 30 Eastern Atlanta 32 | 42 Great Lakes 100 Midwest Chicago 33 | 51 Plains 140 Midwest Dallas 34 | 66 Pacific 270 Western San Francisco 35 | 84 Mountain 290 Western Denver 36 | 37 | -------------------------------------------------------------------------------- /tests/test_101_InsertDeleteFieldCount.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_fields() - insert, delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 35 | --EXPECT-- 36 | col: 0,affected row: 1col: 0,affected row: 1 37 | -------------------------------------------------------------------------------- /tests/test_040_FetchArray.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array one row 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 35 | --EXPECT-- 36 | array(4) { 37 | [0]=> 38 | int(0) 39 | [1]=> 40 | string(3) "cat" 41 | [2]=> 42 | string(16) "Pook " 43 | [3]=> 44 | string(4) "3.20" 45 | } 46 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Developers Certificate of Origin 1.1 2 | 3 | By making a contribution to this project, I certify that: 4 | 5 | (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or 6 | 7 | (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or 8 | 9 | (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. 10 | 11 | (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. 12 | -------------------------------------------------------------------------------- /tests/test_163_FetchBothBinary.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_both() - fetch binary data and iterate over result set 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | The files are the same...good. 38 | Iterated over 8 rows. 39 | -------------------------------------------------------------------------------- /tests/test_1551_FetchAssocBinary.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - fetch binary data and iterate over result set 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | The files are the same...good. 38 | Iterated over 8 rows. 39 | -------------------------------------------------------------------------------- /tests/test_143_BindParamInsertStmtNULLParam.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: INSERT statement - NULL parameter 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | array(4) { 38 | [0]=> 39 | NULL 40 | [1]=> 41 | string(5) "ghost" 42 | [2]=> 43 | NULL 44 | [3]=> 45 | NULL 46 | } 47 | -------------------------------------------------------------------------------- /tests/test_V6_133_ExecuteLongInputParams.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_execute with excessively long input parameters 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECTF-- 34 | bool(false) 35 | SQLSTATE: 22001 36 | Message: Value for column or variable NAME too long. 37 | -------------------------------------------------------------------------------- /tests/test_112_FieldNumDiffCaseColNames.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_num() - colnames diff. case 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 41 | --EXPECT-- 42 | int(0) 43 | int(1) 44 | int(2) 45 | -------------------------------------------------------------------------------- /tests/test_159a_FetchAssocSeveralRows_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - several rows 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 22 | --EXPECT-- 23 | 1 1982-01-01 1983-02-01 24 | 2 1982-01-01 1983-02-01 25 | 3 1982-01-01 1983-02-01 26 | 4 1982-01-01 1983-02-01 27 | 5 1982-01-01 1983-02-01 28 | 6 1982-01-01 1983-02-01 29 | 7 1982-01-01 1983-02-01 30 | 8 1982-01-01 1983-02-01 31 | 9 1982-01-01 1983-02-01 32 | 10 1982-01-01 1982-12-01 33 | 11 1982-01-01 1982-12-01 34 | 12 1982-02-15 1982-12-01 35 | 13 1982-01-01 1983-02-01 36 | 14 1982-01-01 1983-02-01 37 | 15 1982-01-01 1983-02-01 38 | 16 1982-01-01 1983-02-01 39 | 17 1982-01-01 1983-02-01 40 | 18 1982-01-01 1983-02-01 41 | 19 1982-01-01 1983-02-01 42 | 20 1982-01-01 1982-09-15 43 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_max_pconnect.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i max use pconnect (operator issue) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 42 | --EXPECTF-- 43 | %s 44 | %s 45 | success 46 | %s 47 | success 48 | 49 | -------------------------------------------------------------------------------- /tests/test_110_FieldNum.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_num() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 40 | --EXPECT-- 41 | int(0) 42 | int(1) 43 | int(2) 44 | int(3) 45 | bool(false) 46 | bool(false) 47 | int(1) 48 | bool(false) 49 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_servermode_subsystem.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i change QSQSRVR subsystem ccsid 1208 (operator issue) 3 | --SKIPIF-- 4 | 7 | --FILE-- 8 | crtlib adc 13 | > CRTSBSD SBSD(ADC/ADC) POOLS((1 *BASE)) TEXT('tony subsystem descr') 14 | > CRTJOBD JOBD(ADC/ADC) TEXT('tony job descr') 15 | > CRTCLS CLS(ADC/ADC) TEXT('tony class') 16 | > ADDPJE SBSD(ADC/ADC) PGM(QSYS/QSQSRVR) MAXJOBS(*NOMAX) 17 | > strsbs adc/adc 18 | */ 19 | 20 | putenv("IBM_DB_I5_TEST=1"); 21 | putenv("IBM_DB_i5_override_ccsid=1208"); 22 | putenv("IBM_DB_i5_servermode_subsystem=ADC"); /* before include this test */ 23 | $conn1 = db2_connect($database, $user, $password); 24 | $xml = xmlservice_diag($conn1); 25 | $key1 = xmlservice_diag_jobinfo($xml); 26 | echo "key1 $key1\n"; 27 | db2_close($conn1); 28 | 29 | if (strpos($key1,"ADC") === false) { 30 | echo "failed key1 ($key1) missing ADC\n"; 31 | } else { 32 | echo "success\n"; 33 | } 34 | 35 | ?> 36 | --EXPECTF-- 37 | %s 38 | success 39 | 40 | 41 | -------------------------------------------------------------------------------- /tests/test_007_pConnPassingOpts.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_pconnect() - passing options 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE); 11 | $options2 = array('cursor' => DB2_FORWARD_ONLY); 12 | 13 | $conn = db2_pconnect($database, $user, $password); 14 | 15 | if ($conn) { 16 | $stmt = db2_prepare( $conn, "SELECT name FROM animals WHERE weight < 10.0", $options2 ); 17 | db2_execute($stmt); 18 | $data = db2_fetch_both($stmt); 19 | var_dump($data); 20 | 21 | echo "\n"; 22 | 23 | $stmt = db2_prepare( $conn, "SELECT name FROM animals WHERE weight < 10.0" ); 24 | db2_execute($stmt); 25 | $data = db2_fetch_both($stmt); 26 | var_dump($data); 27 | 28 | db2_close($conn); 29 | } 30 | else { 31 | echo "Connection failed."; 32 | } 33 | 34 | ?> 35 | --EXPECT-- 36 | array(2) { 37 | ["NAME"]=> 38 | string(16) "Pook " 39 | [0]=> 40 | string(16) "Pook " 41 | } 42 | 43 | array(2) { 44 | ["NAME"]=> 45 | string(16) "Pook " 46 | [0]=> 47 | string(16) "Pook " 48 | } 49 | -------------------------------------------------------------------------------- /tests/test_006_ConnPassingOpts.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_connect() - passing options 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE); 11 | $options2 = array('cursor' => DB2_FORWARD_ONLY); 12 | 13 | $conn = db2_connect($database, $user, $password); 14 | 15 | if ($conn) { 16 | $stmt = db2_prepare( $conn, "SELECT name FROM animals WHERE weight < 10.0", $options2 ); 17 | db2_execute($stmt); 18 | $data = db2_fetch_both($stmt); 19 | var_dump($data); 20 | 21 | echo "\n"; 22 | 23 | $stmt = db2_prepare( $conn, "SELECT name FROM animals WHERE weight < 10.0", $options1 ); 24 | db2_execute($stmt); 25 | $data = db2_fetch_both($stmt); 26 | var_dump($data); 27 | 28 | db2_close($conn); 29 | } 30 | else { 31 | echo "Connection failed."; 32 | } 33 | 34 | ?> 35 | --EXPECT-- 36 | array(2) { 37 | ["NAME"]=> 38 | string(16) "Pook " 39 | [0]=> 40 | string(16) "Pook " 41 | } 42 | 43 | array(2) { 44 | ["NAME"]=> 45 | string(16) "Pook " 46 | [0]=> 47 | string(16) "Pook " 48 | } 49 | -------------------------------------------------------------------------------- /tests/test_144_BindParamInsertStmtPARAM_FILE.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: INSERT statement (one param) - DB2_PARAM_FILE 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 43 | --EXPECT-- 44 | 1 45 | -------------------------------------------------------------------------------- /tests/test_120_FieldName.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_name() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 40 | --EXPECT-- 41 | string(5) "BREED" 42 | string(4) "NAME" 43 | string(6) "WEIGHT" 44 | bool(false) 45 | string(2) "ID" 46 | bool(false) 47 | string(2) "ID" 48 | bool(false) 49 | -------------------------------------------------------------------------------- /tests/test_195_InsertRetrieveXMLData_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: insert and retrieve XML data 3 | --SKIPIF-- 4 | 9 | --FILE-- 10 | ')"; 23 | 24 | db2_exec( $conn, $insert ); 25 | 26 | if ($conn) { 27 | $sql = "SELECT data FROM xmlTest"; 28 | $stmt = db2_prepare( $conn, $sql ); 29 | db2_execute($stmt); 30 | while($result = db2_fetch_assoc($stmt)) { 31 | print_r($result); 32 | echo "\n"; 33 | } 34 | $drop = 'DROP TABLE xmlTest'; 35 | $result = @db2_exec($conn, $drop); 36 | db2_close($conn); 37 | } 38 | else { 39 | echo "Connection failed.\n"; 40 | } 41 | 42 | ?> 43 | --EXPECT-- 44 | Array 45 | ( 46 | [DATA] => 47 | ) 48 | -------------------------------------------------------------------------------- /tests/test_V6_310_ClientInfo.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_client_info() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DRIVER_NAME ); 16 | echo "DRIVER_VER: "; var_dump( $client->DRIVER_VER ); 17 | echo "DATA_SOURCE_NAME: "; var_dump( $client->DATA_SOURCE_NAME ); 18 | echo "DRIVER_ODBC_VER: "; var_dump( $client->DRIVER_ODBC_VER ); 19 | // echo "ODBC_VER: "; // var_dump( $client->ODBC_VER ); 20 | echo "ODBC_SQL_CONFORMANCE: "; var_dump( $client->ODBC_SQL_CONFORMANCE ); 21 | // echo "APPL_CODEPAGE: "; // var_dump( $client->APPL_CODEPAGE ); 22 | // echo "CONN_CODEPAGE: "; // var_dump( $client->CONN_CODEPAGE ); 23 | 24 | db2_close($conn); 25 | } 26 | else { 27 | echo "Error."; 28 | } 29 | 30 | ?> 31 | --EXPECTF-- 32 | DRIVER_NAME: string(%d) %s 33 | DRIVER_VER: string(%d) %s 34 | DATA_SOURCE_NAME: string(%d) %s 35 | DRIVER_ODBC_VER: string(%d) %s 36 | ODBC_SQL_CONFORMANCE: string(%d) %s 37 | -------------------------------------------------------------------------------- /tests/test_213_FieldDisplaySize_04.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_display_size() - 4 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 47 | --EXPECT-- 48 | sales_person size 0 49 | REGION size 15 50 | REgion size 0 51 | HELMUT size 0 52 | bool(false) 53 | bool(false) 54 | bool(false) 55 | int(10) 56 | -------------------------------------------------------------------------------- /tests/test_6572_SQLStringsContNULLChar.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6572 -- SQL strings containing NULL characters 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 37 | --EXPECT-- 38 | PHP value of null_string is scalyguy. 39 | array(2) { 40 | [0]=> 41 | string(5) "gecko" 42 | [1]=> 43 | string(5) "scaly" 44 | } 45 | -------------------------------------------------------------------------------- /tests/test_020_RollbackDelete.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_rollback() - delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 46 | --EXPECT-- 47 | 7 48 | 0 49 | 7 50 | -------------------------------------------------------------------------------- /tests/test_022_RollbackInsert.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_rollback() - insert 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 45 | --EXPECT-- 46 | 7 47 | 8 48 | 7 49 | -------------------------------------------------------------------------------- /tests/test_V6_180_StmtErrMsg.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_stmt_errormsg() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 43 | --EXPECTF-- 44 | Token INT0 was not valid. Valid tokens: INTO. SQLCODE=-104col: 0,affected row: 0 45 | -------------------------------------------------------------------------------- /tests/test_230_FieldTypePos.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_type() - by position 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | 0:date 38 | 1:string 39 | 2:string 40 | 3:int 41 | 4: 42 | 43 | ----- 44 | 0:int 45 | 1:string 46 | 2:int 47 | 3:string 48 | 4:int 49 | 5:real 50 | 6:real 51 | 52 | ----- 53 | 0:string 54 | 1:string 55 | 2:blob 56 | 57 | ----- 58 | region: 59 | 5:real 60 | -------------------------------------------------------------------------------- /tests/test_gh_62.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Binding empty string to NVARCHAR (GH-62) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 38 | --EXPECTF-- 39 | success 40 | 41 | -------------------------------------------------------------------------------- /tests/test_310_ClientInfo.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_client_info() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DRIVER_NAME ); 16 | echo "DRIVER_VER: "; var_dump( $client->DRIVER_VER ); 17 | echo "DATA_SOURCE_NAME: "; var_dump( $client->DATA_SOURCE_NAME ); 18 | echo "DRIVER_ODBC_VER: "; var_dump( $client->DRIVER_ODBC_VER ); 19 | echo "ODBC_VER: "; var_dump( $client->ODBC_VER ); 20 | echo "ODBC_SQL_CONFORMANCE: "; var_dump( $client->ODBC_SQL_CONFORMANCE ); 21 | echo "APPL_CODEPAGE: "; var_dump( $client->APPL_CODEPAGE ); 22 | echo "CONN_CODEPAGE: "; var_dump( $client->CONN_CODEPAGE ); 23 | 24 | db2_close($conn); 25 | } 26 | else { 27 | echo "Error."; 28 | } 29 | 30 | ?> 31 | --EXPECTF-- 32 | DRIVER_NAME: string(%d) %s 33 | DRIVER_VER: string(%d) %s 34 | DATA_SOURCE_NAME: string(%d) %s 35 | DRIVER_ODBC_VER: string(%d) %s 36 | ODBC_VER: string(%d) %s 37 | ODBC_SQL_CONFORMANCE: string(%d) %s 38 | APPL_CODEPAGE: int(%d) 39 | CONN_CODEPAGE: int(%d) 40 | 41 | 42 | -------------------------------------------------------------------------------- /tests/test_015_InsertDeleteRowCount_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - insert, delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 42 | --EXPECT-- 43 | col: 0,affected row: 1col: 0,affected row: 1 44 | -------------------------------------------------------------------------------- /tests/test_016_InsertDeleteRowCount_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - insert, delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 43 | --EXPECT-- 44 | col: 0,affected row: 1col: 0,affected row: 1 45 | -------------------------------------------------------------------------------- /tests/test_133_ExecuteLongInputParams.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_execute with excessively long input parameters 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 33 | --EXPECTREGEX-- 34 | (PHP )?Warning:\s+db2_execute\(\): Statement Execute Failed in .*?test_133_ExecuteLongInputParams.php on line \d+ 35 | bool\(false\) 36 | SQLSTATE: 22001 37 | Message: \[IBM\]\[CLI Driver\] CLI0109E String data right truncation. SQLSTATE=22001 38 | -------------------------------------------------------------------------------- /tests/test_240_FieldWidthPosName_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_width() - by position and name 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 37 | --EXPECT-- 38 | 0:10 39 | 1:15 40 | 2:15 41 | 3:11 42 | 43 | ----- 44 | 0:6 45 | 1:9 46 | 2:6 47 | 3:5 48 | 4:6 49 | 5:9 50 | 6:9 51 | 52 | ----- 53 | 0:6,6 54 | 1:10,10 55 | 2:102400,204800 56 | 57 | ----- 58 | region: 59 | 5:real 60 | -------------------------------------------------------------------------------- /tests/test_V6_hebrew.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i Hebrew (zend support issue) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 40 | --EXPECTF-- 41 | IBM i data string "123Eאבג" 42 | IBM i data string "123Eאבג" 43 | success 44 | 45 | -------------------------------------------------------------------------------- /tests/test_V6_240_FieldWidthPosName_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_width() - by position and name 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 37 | --EXPECT-- 38 | 0:10 39 | 1:15 40 | 2:15 41 | 3:4 42 | 43 | ----- 44 | 0:2 45 | 1:9 46 | 2:2 47 | 3:5 48 | 4:2 49 | 5:1794 50 | 6:1794 51 | 52 | ----- 53 | 0:6,6 54 | 1:10,10 55 | 2:102400,102400 56 | 57 | ----- 58 | region: 59 | 5:real 60 | -------------------------------------------------------------------------------- /tests/test_231_FieldTypeName.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_type() - by name 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 36 | --EXPECT-- 37 | 0:date 38 | 1:string 39 | 2:string 40 | 3:int 41 | 4: 42 | 43 | ----- 44 | 0:int 45 | 1:string 46 | 2:int 47 | 3:string 48 | 4:int 49 | 5:real 50 | 6:real 51 | 52 | ----- 53 | 0:string 54 | 1:string 55 | 2:blob 56 | 57 | ----- 58 | region: 59 | 5:real 60 | -------------------------------------------------------------------------------- /tests/test_180_StmtErrMsg.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_stmt_errormsg() 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 43 | --EXPECTF-- 44 | [IBM][CLI Driver]%s SQL0104N An unexpected token %s was found following %s. Expected tokens may include: %s. SQLSTATE=42601 SQLCODE=-104col: 0,affected row: 0 45 | -------------------------------------------------------------------------------- /tests/test_6755_ExtraNULLChar_ResultCLOBCol.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6755 -- Extra null character on result from CLOB column 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 40 | --EXPECT-- 41 | "database" from VARCHAR is 8 bytes long, "database" from CLOB is 8 bytes long. 42 | 43 | -------------------------------------------------------------------------------- /tests/test_024_ForeignKeys.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_foreign_keys -- tests the db2_foreign_keys functionality 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 42 | --EXPECT-- 43 | TEST_PRIMARY_KEYS 44 | ID 45 | TEST_FOREIGN_KEYS 46 | IDF 47 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - '7.3' 5 | - '7.2' 6 | - '7.1' 7 | - '7.0' 8 | - '5.6' 9 | 10 | install: 11 | - curl https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz | tar -xz 12 | - docker pull ibmcom/db2express-c 13 | - docker run --name db2 -p 60000:50000 -e DB2INST1_PASSWORD=password -e LICENSE=accept -d ibmcom/db2express-c db2start 14 | - docker ps -as 15 | - docker exec -it db2 su - db2inst1 -c "db2 create db sample" 16 | 17 | before_script: 18 | # Ensure that DB2CLIINIPATH gets passed to the tests 19 | - echo 'variables_order = "EGPCS"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini 20 | 21 | script: 22 | - phpize 23 | - ./configure --with-IBM_DB2=$PWD/clidriver 24 | - make 25 | - | 26 | cat < db2cli.ini 27 | [SAMPLE] 28 | Hostname=localhost 29 | Protocol=TCPIP 30 | Port=60000 31 | Database=sample 32 | EOF 33 | - cat db2cli.ini 34 | # Ensure that tests are not skipped (false positive) due to bad configuration 35 | - export IBM_DB2_TEST_SKIP_CONNECT_FAILURE=0 36 | # Ensure CLI can find the configuration 37 | - export DB2CLIINIPATH=$PWD 38 | # Ensure make returns non-zero when a test fails 39 | - export REPORT_EXIT_STATUS=1 40 | # Save the report so we can print it if a test fails 41 | - make test TESTS='-s report.txt' 42 | 43 | after_failure: 44 | - cat report.txt 45 | -------------------------------------------------------------------------------- /tests/test_060_Tables_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - 1 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 50 | --EXPECT-- 51 | T/T1 52 | T/T2 53 | T/T3 54 | T/T4 55 | done! 56 | -------------------------------------------------------------------------------- /tests/test_100_SelectDeleteInsertFieldCount.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_fields() - select - delete - insert 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 47 | --EXPECT-- 48 | int(4) 49 | int(2) 50 | int(0) 51 | int(0) 52 | int(3) 53 | -------------------------------------------------------------------------------- /tests/test_042_FetchArrayMany_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array() - several rows 1 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | %s (%s)
",$row['0'], $row['0'], $row[1]); 31 | print "\n"; 32 | } 33 | } 34 | 35 | 36 | ?> 37 | --EXPECT-- 38 | 000130 (jpg)
39 | 000140 (jpg)
40 | 000150 (jpg)
41 | 000190 (jpg)
42 | 43 | -------------------------------------------------------------------------------- /tests/test_141_BindParamSelectStmtMultipleParams_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: SELECT statement (multiple params) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | ?"; 13 | 14 | $conn = db2_connect($database, $user, $password); 15 | 16 | if ($conn) { 17 | $stmt = db2_prepare( $conn, $sql ); 18 | 19 | $animal = 5; 20 | $mass = 2.0; 21 | db2_bind_param($stmt, 1, 'animal'); 22 | db2_bind_param($stmt, 2, 'mass'); 23 | 24 | if (db2_execute($stmt)) 25 | { 26 | while ($row = db2_fetch_array($stmt)) { 27 | var_dump($row); 28 | } 29 | } 30 | db2_close($conn); 31 | } 32 | else 33 | { 34 | echo "Connection failed.\n"; 35 | } 36 | 37 | ?> 38 | --EXPECT-- 39 | array(4) { 40 | [0]=> 41 | int(0) 42 | [1]=> 43 | string(3) "cat" 44 | [2]=> 45 | string(16) "Pook " 46 | [3]=> 47 | string(4) "3.20" 48 | } 49 | array(4) { 50 | [0]=> 51 | int(1) 52 | [1]=> 53 | string(3) "dog" 54 | [2]=> 55 | string(16) "Peaches " 56 | [3]=> 57 | string(5) "12.30" 58 | } 59 | array(4) { 60 | [0]=> 61 | int(2) 62 | [1]=> 63 | string(5) "horse" 64 | [2]=> 65 | string(16) "Smarty " 66 | [3]=> 67 | string(6) "350.00" 68 | } 69 | -------------------------------------------------------------------------------- /tests/test_018_selectRowcountPrefetchSetOpt.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - select (rowcount prefetch) - set option 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_ROWCOUNT_PREFETCH_ON); 16 | db2_set_option($stmt, $options, 2); 17 | db2_execute( $stmt ); 18 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 19 | echo "\n"; 20 | db2_free_result( $stmt ); 21 | $options = array('rowcount' => DB2_ROWCOUNT_PREFETCH_OFF); 22 | db2_set_option($stmt, $options, 2); 23 | db2_execute( $stmt ); 24 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 25 | echo "\n"; 26 | db2_free_result( $stmt ); 27 | $options = array('rowcount' => DB2_ROWCOUNT_PREFETCH_ON); 28 | db2_set_option($stmt, $options, 2); 29 | db2_execute( $stmt ); 30 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 31 | 32 | db2_close($conn); 33 | } 34 | else { 35 | echo "Connection failed."; 36 | } 37 | 38 | ?> 39 | --EXPECT-- 40 | Number of affected rows: 4 41 | Number of affected rows: -1 42 | Number of affected rows: 4 43 | -------------------------------------------------------------------------------- /tests/test_017_selectRowcountPrefetchSTMTOpt.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_num_rows - select (rowcount prefetch) - stmt option 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | DB2_SCROLLABLE) ); 15 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 16 | echo "\n"; 17 | $stmt = db2_exec( $conn, "SELECT * from animals WHERE weight < 10.0", array('cursor' => DB2_FORWARD_ONLY) ); 18 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 19 | echo "\n"; 20 | $stmt = db2_exec( $conn, "SELECT * from animals WHERE weight < 10.0", array('rowcount' => DB2_ROWCOUNT_PREFETCH_ON) ); 21 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 22 | echo "\n"; 23 | $stmt = db2_exec( $conn, "SELECT * from animals WHERE weight < 10.0", array('rowcount' => DB2_ROWCOUNT_PREFETCH_OFF) ); 24 | echo "Number of affected rows: " . db2_num_rows( $stmt ); 25 | db2_close($conn); 26 | } 27 | else { 28 | echo "Connection failed."; 29 | } 30 | 31 | ?> 32 | --EXPECT-- 33 | Number of affected rows: 4 34 | Number of affected rows: -1 35 | Number of affected rows: 4 36 | Number of affected rows: -1 37 | -------------------------------------------------------------------------------- /tests/test_111_FieldNumAddCol.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_num() - add. col. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 46 | --EXPECT-- 47 | bool(false) 48 | int(0) 49 | int(1) 50 | bool(false) 51 | bool(false) 52 | bool(false) 53 | int(1) 54 | bool(false) 55 | -------------------------------------------------------------------------------- /tests/connection.inc: -------------------------------------------------------------------------------- 1 | 0) { 18 | $myos = shell_exec("uname"); 19 | } 20 | if (strpos($myos,'400') > 0) { 21 | if (strpos($_SERVER["PHP_SELF"],"V6") === false) { 22 | require_once('skipif.PASE'); 23 | for ($entry = strtok($PASE_ALT_TEST,"\n"); $entry; $entry = strtok("\n")) { 24 | $check = str_replace(array("test_V6",".phpt",".php"),"",$entry); 25 | if (strpos($_SERVER["PHP_SELF"],$check) > 0) { 26 | die('skip'); 27 | } 28 | } 29 | } 30 | } 31 | // LUW (not PASE) 32 | else { 33 | if (strpos($_SERVER["PHP_SELF"],"V6") > 0) { 34 | die('skip'); 35 | } 36 | } 37 | 38 | 39 | date_default_timezone_set('UTC'); 40 | 41 | 42 | $skip_on_connect_failure = getenv("IBM_DB2_TEST_SKIP_CONNECT_FAILURE") !== FALSE ? 43 | getenv("IBM_DB2_TEST_SKIP_CONNECT_FAILURE") : true; 44 | 45 | 46 | // test connection ok 47 | $prepconn = db2_connect($database, $user, $password); 48 | if (!$prepconn) { 49 | if($skip_on_connect_failure) die("skip - Couldn't connect"); 50 | } 51 | else { 52 | db2_close($prepconn); 53 | } 54 | 55 | unset($skip_on_connect_failure); 56 | 57 | ?> 58 | -------------------------------------------------------------------------------- /tests/test_061_Tables_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - 2 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 51 | --EXPECT-- 52 | TT1TABLE 53 | TT2TABLE 54 | TT3TABLE 55 | TT4TABLE 56 | done! 57 | -------------------------------------------------------------------------------- /tests/test_122_FieldNameDiffCaseColNames.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_name() - colnames diff. case 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 48 | --EXPECT-- 49 | string(4) "TEST" 50 | string(4) "test" 51 | string(4) "Test" 52 | string(4) "TEST" 53 | string(4) "test" 54 | string(4) "Test" 55 | -------------------------------------------------------------------------------- /tests/resume_000190.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resume: James H. Walker 4 | 5 | 6 | Personal Information 7 | 8 | Address: 3500 Steeles Ave 9 | Mellonville, Idaho 83757 10 | Phone: (208) 725-7325 11 | Birthdate: June 25, 1952 12 | Sex: Male 13 | Marital Status: Single 14 | Height: 5'11" 15 | Weight: 166 lbs. 16 | 17 | 18 | Department Information 19 | 20 | Employee Number: 000190 21 | Dept Number: D11 22 | Manager: Irving Stern 23 | Position: Designer 24 | Phone: (208) 385-2986 25 | Hire Date: 1974-07-26 26 | 27 | 28 | Education 29 | 30 | 1974 Computer Studies, B.Sc. 31 | University of Massachusetts 32 | 33 | 1972 Linguistic Anthropology, B.A. 34 | University of Toronto 35 | 36 | 37 | Work History 38 | 39 | 6/87 - present Microcode Design 40 | Optimizing algorithms for mathematical functions. 41 | 42 | 4/77 - 5/87 Printer Technical Support 43 | Installing and supporting laser printers. 44 | 45 | 9/74 - 3/77 Maintenance Programming 46 | Patching assembly language compiler for 47 | mainframes. 48 | 49 | 50 | Interests 51 | 52 | o Wine tasting 53 | o Skiing 54 | o Swimming 55 | o Dancing 56 | -------------------------------------------------------------------------------- /tests/test_062_Tables_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - 3 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 53 | --EXPECT-- 54 | T/T1/TABLE 55 | T/T2/TABLE 56 | T/T3/TABLE 57 | T/T4/TABLE 58 | done! 59 | -------------------------------------------------------------------------------- /tests/test_321_ResultFetchArraysLobsXMLTypes.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_result, db2_fetch_array tests lobs and xml types 3 | --SKIPIF-- 4 | 9 | --FILE-- 10 | '), clob('a clob'), xmlserialize(xmlQuery('') as varchar(1000)))"; 16 | $stmt = db2_prepare($conn, $sql); 17 | if (db2_execute($stmt)) { 18 | while (db2_fetch_row($stmt)) { 19 | for( $i = 0 ; $i < 3 ; $i++ ) { 20 | $x = db2_result($stmt,$i); 21 | echo "col $i: type:", gettype($x), " ", db2_field_type($stmt,$i), " value:[", $x, "] false?", ($x===false),"\n"; 22 | } 23 | } 24 | } else { 25 | print "execute failed\n"; 26 | } 27 | 28 | if (db2_execute($stmt)) { 29 | while (($a = db2_fetch_array($stmt))) { 30 | echo "row: [$a[0]] [$a[1]] [$a[2]]\n"; 31 | } 32 | } else { 33 | print "execute failed\n"; 34 | } 35 | } 36 | 37 | ?> 38 | --XFAIL-- 39 | SQLGetData as a CLOB locator returns conversion error for some reason. Probably a bug, but it predates the CI 40 | --EXPECT-- 41 | col 0: type:string xml value:[] false? 42 | col 1: type:string clob value:[a clob] false? 43 | col 2: type:string string value:[] false? 44 | row: [] [a clob] [] 45 | 46 | -------------------------------------------------------------------------------- /tests/test_121_FieldNameAddCol.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_field_name() - add. col. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 46 | --EXPECT-- 47 | string(5) "BREED" 48 | string(6) "NUMBER" 49 | bool(false) 50 | bool(false) 51 | string(5) "BREED" 52 | bool(false) 53 | bool(false) 54 | string(6) "NUMBER" 55 | -------------------------------------------------------------------------------- /tests/test_066_TableObjects.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - Play with table objects 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | TABLE_SCHEM . "\n" 20 | . 'Name: ' . $row->TABLE_NAME . "\n" 21 | . 'Type: ' . $row->TABLE_TYPE . "\n" 22 | . 'Remarks: ' . $row->REMARKS . "\n\n"; 23 | if ($server->DBMS_NAME == 'AS') { 24 | switch ($row->TABLE_NAME) { 25 | case 'ANIMALS': 26 | $t[0].=$output; 27 | break; 28 | case 'ANIMAL_PICS': 29 | $t[1].=$output; 30 | break; 31 | case 'ANIME_CAT': 32 | $t[2].=$output; 33 | break; 34 | default: 35 | $t[3].=$output; 36 | break; 37 | } 38 | } else { 39 | echo $output; 40 | } 41 | } 42 | 43 | if ($server->DBMS_NAME == 'AS') { 44 | foreach ($t as $item) echo $item; 45 | } 46 | 47 | db2_free_result($result); 48 | db2_close($conn); 49 | 50 | ?> 51 | --EXPECTF-- 52 | Schema: %s 53 | Name: ANIMALS 54 | Type: TABLE 55 | Remarks: 56 | 57 | Schema: %s 58 | Name: ANIMAL_PICS 59 | Type: TABLE 60 | Remarks: 61 | 62 | Schema: %s 63 | Name: ANIME_CAT 64 | Type: VIEW 65 | Remarks: 66 | 67 | -------------------------------------------------------------------------------- /tests/resume_000140.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resume: Heather A. Nicholls 4 | 5 | 6 | Personal Information 7 | 8 | Address: 844 Don Mills Ave 9 | Mellonville, Idaho 83734 10 | Phone: (208) 610-2310 11 | Birthdate: January 19, 1946 12 | Sex: Female 13 | Marital Status: Single 14 | Height: 5'8" 15 | Weight: 130 lbs. 16 | 17 | 18 | Department Information 19 | 20 | Employee Number: 000140 21 | Dept Number: C01 22 | Manager: Sally Kwan 23 | Position: Analyst 24 | Phone: (208) 385-1793 25 | Hire Date: 1976-12-15 26 | 27 | 28 | Education 29 | 30 | 1972 Computer Engineering, Ph.D. 31 | University of Washington 32 | 33 | 1969 Music and Physics, B.A. 34 | Vassar College 35 | 36 | 37 | Work History 38 | 39 | 2/83 - present Architect, OCR Development 40 | Designing the architecture of OCR products. 41 | 42 | 12/76 - 1/83 Text Programmer 43 | Optical character recognition (OCR) programming in 44 | PL/I. 45 | 46 | 9/72 - 11/76 Punch Card Quality Analyst 47 | Checking punch cards met quality specifications. 48 | 49 | 50 | Interests 51 | 52 | o Model railroading 53 | o Interior decorating 54 | o Embroidery 55 | o Knitting 56 | -------------------------------------------------------------------------------- /tests/resume_000130.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resume: Delores M. Quintana 4 | 5 | 6 | Personal Information 7 | 8 | Address: 1150 Eglinton Ave 9 | Mellonville, Idaho 83725 10 | Phone: (208) 875-9933 11 | Birthdate: September 15, 1925 12 | Sex: Female 13 | Marital Status: Married 14 | Height: 5'2" 15 | Weight: 120 lbs. 16 | 17 | 18 | Department Information 19 | 20 | Employee Number: 000130 21 | Dept Number: C01 22 | Manager: Sally Kwan 23 | Position: Analyst 24 | Phone: (208) 385-4578 25 | Hire Date: 1971-07-28 26 | 27 | 28 | Education 29 | 30 | 1965 Math and English, B.A. 31 | Adelphi University 32 | 33 | 1960 Dental Technician 34 | Florida Institute of Technology 35 | 36 | 37 | Work History 38 | 39 | 10/91 - present Advisory Systems Analyst 40 | Producing documentation tools for engineering 41 | department. 42 | 43 | 12/85 - 9/91 Technical Writer 44 | Writer, text programmer, and planner. 45 | 46 | 1/79 - 11/85 COBOL Payroll Programmer 47 | Writing payroll programs for a diesel fuel 48 | company. 49 | 50 | 51 | Interests 52 | 53 | o Cooking 54 | o Reading 55 | o Sewing 56 | o Remodeling 57 | -------------------------------------------------------------------------------- /tests/test_065_FilterTableName.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - Filter by table name 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 50 | --EXPECT-- 51 | TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS, 52 | 53 | , T, T3, TABLE, , 54 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_check_pconnect.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i check pconnect (alternative LUW ping) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 50 | --EXPECTF-- 51 | (IBM_DB_i5_check_pconnect=-42) 52 | %s 53 | %s 54 | success 55 | (IBM_DB_i5_check_pconnect=4) 56 | %s 57 | success 58 | 59 | -------------------------------------------------------------------------------- /tests/test_064_Tables_05.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_tables() - 5 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 51 | --EXPECT-- 52 | TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS, 53 | 54 | , T, T1, TABLE, , 55 | , T, T2, TABLE, , 56 | , T, T3, TABLE, , 57 | , T, T4, TABLE, , 58 | -------------------------------------------------------------------------------- /tests/resume_000150.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resume: Bruce Adamson 4 | 5 | 6 | Personal Information 7 | 8 | Address: 3600 Steeles Ave 9 | Mellonville, Idaho 83757 10 | Phone: (208) 725-4489 11 | Birthdate: May 17, 1947 12 | Sex: Male 13 | Marital Status: Married 14 | Height: 6'0" 15 | Weight: 175 lbs. 16 | 17 | 18 | Department Information 19 | 20 | Employee Number: 000150 21 | Dept Number: D11 22 | Manager: Irving Stern 23 | Position: Designer 24 | Phone: (208) 385-4510 25 | Hire Date: 1972-02-12 26 | 27 | 28 | Education 29 | 30 | 1971 Environmental Engineering, M.Sc. 31 | Johns Hopkins University 32 | 33 | 1968 American History, B.A. 34 | Northwestern University 35 | 36 | 37 | Work History 38 | 39 | 8/79 - present Neural Network Design 40 | Developing neural networks for machine 41 | intelligence products. 42 | 43 | 2/72 - 7/79 Robot Vision Development 44 | Developing rule-based systems to emulate sight. 45 | 46 | 9/71 - 1/72 Numerical Integration Specialist 47 | Helping bank systems communicate with each other. 48 | 49 | 50 | Interests 51 | 52 | o Racing motorcycles 53 | o Building loudspeakers 54 | o Assembling personal computers 55 | o Sketching 56 | -------------------------------------------------------------------------------- /tests/test_159_FetchAssocSeveralRows_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - several rows 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 22 | --EXPECT-- 23 | 1 Sanders Mgr 24 | 2 Pernal Sales 25 | 3 Marenghi Mgr 26 | 4 O'Brien Sales 27 | 5 Hanes Mgr 28 | 6 Quigley Sales 29 | 7 Rothman Sales 30 | 8 James Clerk 31 | 9 Koonitz Sales 32 | 10 Plotz Mgr 33 | 11 Ngan Clerk 34 | 12 Naughton Clerk 35 | 13 Yamaguchi Clerk 36 | 14 Fraye Mgr 37 | 15 Williams Sales 38 | 16 Molinare Mgr 39 | 17 Kermisch Clerk 40 | 18 Abrahams Clerk 41 | 19 Sneider Clerk 42 | 20 Scoutten Clerk 43 | 21 Lu Mgr 44 | 22 Smith Sales 45 | 23 Lundquist Clerk 46 | 24 Daniels Mgr 47 | 25 Wheeler Clerk 48 | 26 Jones Mgr 49 | 27 Lea Mgr 50 | 28 Wilson Sales 51 | 29 Quill Mgr 52 | 30 Davis Sales 53 | 31 Graham Sales 54 | 32 Gonzales Sales 55 | 33 Burke Clerk 56 | 34 Edwards Sales 57 | 35 Gafney Clerk 58 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_all_pconnect.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i force all connect to pconnect (operator issue) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 58 | --EXPECTF-- 59 | %s 60 | %s 61 | success 62 | %s 63 | %s 64 | success 65 | success 66 | 67 | -------------------------------------------------------------------------------- /tests/test_142_BindParamSelectStmtMultipleParams_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_bind_param: SELECT statement (multiple params) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | ?"; 13 | 14 | $conn = db2_connect($database, $user, $password); 15 | 16 | if ($conn) { 17 | $stmt = db2_prepare($conn, $sql); 18 | 19 | db2_bind_param($stmt, 1, 'weight', DB2_PARAM_IN); 20 | db2_bind_param($stmt, 2, 'mass', DB2_PARAM_IN); 21 | 22 | $weight = 200.05; 23 | $mass = 2.0; 24 | 25 | if (db2_execute($stmt)) { 26 | while ($row = db2_fetch_array($stmt)) { 27 | var_dump($row); 28 | } 29 | } 30 | db2_close($conn); 31 | } else { 32 | echo "Connection failed.\n"; 33 | } 34 | 35 | ?> 36 | --EXPECT-- 37 | array(4) { 38 | [0]=> 39 | int(0) 40 | [1]=> 41 | string(3) "cat" 42 | [2]=> 43 | string(16) "Pook " 44 | [3]=> 45 | string(4) "3.20" 46 | } 47 | array(4) { 48 | [0]=> 49 | int(1) 50 | [1]=> 51 | string(3) "dog" 52 | [2]=> 53 | string(16) "Peaches " 54 | [3]=> 55 | string(5) "12.30" 56 | } 57 | array(4) { 58 | [0]=> 59 | int(5) 60 | [1]=> 61 | string(4) "goat" 62 | [2]=> 63 | string(16) "Rickety Ride " 64 | [3]=> 65 | string(4) "9.70" 66 | } 67 | array(4) { 68 | [0]=> 69 | int(6) 70 | [1]=> 71 | string(5) "llama" 72 | [2]=> 73 | string(16) "Sweater " 74 | [3]=> 75 | string(6) "150.00" 76 | } 77 | -------------------------------------------------------------------------------- /tests/test_025_PrimaryKeys.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_primary_keys -- tests the db2_primary_keys functionality 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 48 | --EXPECT-- 49 | TEST_PRIMARY_KEYS 50 | ID 51 | 1 52 | -------------------------------------------------------------------------------- /tests/test_6792_FieldTypeRetStrDatetimeTimestamp.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6792 -- db2_field_type returns 'string' for date, time, and timestamp 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 49 | --EXPECT-- 50 | 0:time 51 | 1:date 52 | 2:timestamp 53 | 10:42:34 54 | 1981-07-08 55 | 1981-07-08 10:42:34.000000 56 | 57 | -------------------------------------------------------------------------------- /tests/test_146_CallSPINAndOUTParams.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure with IN and OUT parameters 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 39 | --EXPECT-- 40 | Values of bound parameters _before_ CALL: 41 | 1: Peaches 2: Rickety Ride 3: 0 42 | 43 | Values of bound parameters _after_ CALL: 44 | 1: Peaches 2: TRUE 3: 12 45 | 46 | Results: 47 | Peaches, dog, 12.30 48 | Pook, cat, 3.20 49 | Rickety Ride, goat, 9.70 50 | Smarty, horse, 350.00 51 | Sweater, llama, 150.00 52 | -------------------------------------------------------------------------------- /tests/test_V6_6792_FieldTypeRetStrDatetimeTimestamp.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: PECL bug 6792 -- db2_field_type returns 'string' for date, time, and timestamp 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 49 | --EXPECT-- 50 | 0:time 51 | 1:date 52 | 2:timestamp 53 | 10.42.34 54 | 1981-07-08 55 | 1981-07-08-10.42.34.000000 56 | 57 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_guard_profile.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i security guard profile (customer application issue) 3 | --SKIPIF-- 4 | 7 | --FILE-- 8 | 55 | --EXPECTF-- 56 | key1 %s 57 | key2 %s 58 | key3 %s 59 | success 60 | success 61 | success 62 | 63 | -------------------------------------------------------------------------------- /tests/test_boolean.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Boolean data type test. 3 | --SKIPIF-- 4 | DBMS_NAME == "AS") { // IBM i 17 | // DBMS_VER is VVRRM string 18 | $major = $info->DBMS_VER[1]; 19 | $minor = $info->DBMS_VER[3]; 20 | $mod = $info->DBMS_VER[4]; 21 | if (!version_compare("$major.$minor.$mod", "7.5.0", ">=")) { 22 | die("skip IBM i version too old"); 23 | } 24 | } else { // Should cover i.e. DB2/LINUX 25 | // DBMS_VER is VV.RR.MMMM, version_compore should work directly 26 | if (!version_compare($info->DBMS_VER, "9.7.0", ">=")) { 27 | die("skip DB2 version too old"); 28 | } 29 | } 30 | // XXX: z 31 | 32 | ?> 33 | --FILE-- 34 | 58 | --EXPECT-- 59 | array(2) { 60 | [0]=> 61 | bool(true) 62 | [1]=> 63 | bool(false) 64 | } 65 | int(1) 66 | int(0) 67 | boolean 68 | -------------------------------------------------------------------------------- /tests/test_V6_ini_i5_sys_naming.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: 1.9.7 - IBM i system naming (operator override) 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 62 | --EXPECTF-- 63 | %s 64 | success 65 | success 66 | %s 67 | success 68 | success 69 | 70 | -------------------------------------------------------------------------------- /tests/test_145_BindRetrieveNULLEmptyString.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Bind and retrieve NULL and empty string values 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 51 | --EXPECT-- 52 | array(3) { 53 | [0]=> 54 | int(999) 55 | [1]=> 56 | NULL 57 | [2]=> 58 | string(16) " " 59 | } 60 | array(3) { 61 | [0]=> 62 | int(1000) 63 | [1]=> 64 | NULL 65 | [2]=> 66 | string(16) " " 67 | } 68 | -------------------------------------------------------------------------------- /tests/test_021_CommitDelete.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_commit() - delete 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 64 | --EXPECT-- 65 | 7 66 | 0 67 | 0 68 | -------------------------------------------------------------------------------- /tests/test_197_StatisticsIndexes.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_statistics(): testing indexes 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 52 | --EXPECTF-- 53 | Test first index table: 54 | INDEX_TEST 55 | 1 56 | INDEX1 57 | ID 58 | Test second index table: 59 | INDEX_TEST2 60 | 1 61 | INDEX2 62 | DATA 63 | Test non-existent table: 64 | Empty 65 | 66 | -------------------------------------------------------------------------------- /tests/test_V6_148_CallSPDiffBindPattern_01.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure in a different binding pattern 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 53 | --EXPECT-- 54 | out 1: 55 | 1 56 | out 2: 57 | 5.01 58 | out 3: 59 | varchar 60 | out 4: 61 | 3271982 62 | out 5: 63 | clob data clob data 64 | 65 | -------------------------------------------------------------------------------- /tests/test_149_CallSPDiffBindPattern_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure in a different binding pattern 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 53 | --EXPECT-- 54 | out 1: 55 | 1 56 | out 2: 57 | 5.01 58 | out 3: 59 | varchar 60 | out 4: 61 | 3271982 62 | out 5: 63 | clob data clob data 64 | 65 | -------------------------------------------------------------------------------- /tests/test_046_FetchArrayMany_05.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array() - several rows 4 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | %s - %s - %s bytes
",$row['0'], $row[1], $row['0'], $row[1], $row[2]); 32 | print "\n"; 33 | } 34 | } 35 | } 36 | 37 | ?> 38 | --EXPECT-- 39 | 000130 - jpg - 15398 bytes
40 | 000130 - png - 10291 bytes
41 | 000140 - jpg - 15398 bytes
42 | 000140 - png - 10291 bytes
43 | 000150 - jpg - 15398 bytes
44 | 000150 - png - 10291 bytes
45 | 000190 - jpg - 15398 bytes
46 | 000190 - png - 10291 bytes
47 | 48 | -------------------------------------------------------------------------------- /tests/test_V6_149_CallSPDiffBindPattern_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure in a different binding pattern 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 53 | --EXPECT-- 54 | out 1: 55 | 1 56 | out 2: 57 | 5.01 58 | out 3: 59 | varchar 60 | out 4: 61 | 3271982 62 | out 5: 63 | clob data clob data 64 | 65 | -------------------------------------------------------------------------------- /tests/test_V6_197_StatisticsIndexes_with_lib_1028_issue.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_statistics(): testing indexes 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 53 | --EXPECTF-- 54 | Test first index table: 55 | INDEX_TEST 56 | 1 57 | INDEX1 58 | ID 59 | Test second index table: 60 | INDEX_TEST2 61 | 1 62 | INDEX2 63 | DATA 64 | Test non-existent table: 65 | Empty 66 | 67 | 68 | -------------------------------------------------------------------------------- /tests/test_queryTimeout.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Query Time Out test. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | "500"), 1); 24 | 25 | for($i = 0;$i < 10;$i++) { 26 | $rc = db2_execute($stmt, array($i, $i + $i)); 27 | } 28 | 29 | $selectQuery = "SELECT * FROM querytimeout"; 30 | 31 | $stmt = db2_prepare($conn, $selectQuery); 32 | 33 | db2_set_option($stmt, array("query_timeout" => 1), 2); 34 | 35 | db2_execute($stmt); 36 | 37 | while ($row = db2_fetch_array($stmt)) { 38 | print_r($row); 39 | } 40 | 41 | db2_close($conn); 42 | } else { 43 | echo "Connection fail.\n"; 44 | echo db2_conn_errormsg() . "\n"; 45 | } 46 | ?> 47 | --EXPECTF-- 48 | Connection pass. 49 | 50 | Warning: db2_set_option(): QUERY TIMEOUT attribute can only be set on statement resources in %s on line 18 51 | Array 52 | ( 53 | [0] => 0 54 | [1] => 0 55 | ) 56 | Array 57 | ( 58 | [0] => 1 59 | [1] => 2 60 | ) 61 | Array 62 | ( 63 | [0] => 2 64 | [1] => 4 65 | ) 66 | Array 67 | ( 68 | [0] => 3 69 | [1] => 6 70 | ) 71 | Array 72 | ( 73 | [0] => 4 74 | [1] => 8 75 | ) 76 | Array 77 | ( 78 | [0] => 5 79 | [1] => 10 80 | ) 81 | Array 82 | ( 83 | [0] => 6 84 | [1] => 12 85 | ) 86 | Array 87 | ( 88 | [0] => 7 89 | [1] => 14 90 | ) 91 | Array 92 | ( 93 | [0] => 8 94 | [1] => 16 95 | ) 96 | Array 97 | ( 98 | [0] => 9 99 | [1] => 18 100 | ) 101 | -------------------------------------------------------------------------------- /tests/skipif.PASE: -------------------------------------------------------------------------------- 1 | 56 | -------------------------------------------------------------------------------- /tests/test_graphic_data_type.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Testing Graphic Datatype. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 65 | --EXPECT-- 66 | Connection created. 67 | a |Test_01 | 68 | b |Test_02 | 69 | c |Test_03 | 70 | d |Test_04 | 71 | e |Test_05 | 72 | Connection closed. 73 | -------------------------------------------------------------------------------- /tests/test_V6_197_StatisticsIndexes.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_statistics(): testing indexes 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 59 | --EXPECTF-- 60 | Test first index table: 61 | INDEX_TEST 62 | 1 63 | INDEX1 64 | ID 65 | Test second index table: 66 | INDEX_TEST2 67 | 1 68 | INDEX2 69 | DATA 70 | Test non-existent table: 71 | Empty 72 | 73 | 74 | -------------------------------------------------------------------------------- /tests/test_147_CallSPINAndOUTParamsMultipleTimes.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Call a stored procedure with IN and OUT parameters multiple times 3 | --SKIPIF-- 4 | 5 | =') && 7 | version_compare(PHP_VERSION, '7.2', '<')) { 8 | die("skip: Test fails on PHP 7.1 with ZTS (https://bugs.php.net/bug.php?id=77547)"); 9 | } 10 | ?> 11 | --FILE-- 12 | 50 | --EXPECT-- 51 | date before 2002-10-20 52 | date after 1982-01-24 53 | date before 2002-10-20 54 | date after 1982-01-24 55 | date before 2002-10-20 56 | date after 1982-01-24 57 | -------------------------------------------------------------------------------- /tests/test_196_InsertRetrieveXMLData_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: insert and retrieve XML data: 2 3 | --SKIPIF-- 4 | 9 | --FILE-- 10 | 12485 S Pine St.OlatheKS66061')"); 20 | 21 | $sql = "SELECT * FROM xml_test"; 22 | $stmt = db2_prepare($conn, $sql); 23 | db2_execute($stmt); 24 | while($result = db2_fetch_both($stmt)) { 25 | echo "Result ID: "; 26 | echo $result[0] . "\n"; 27 | echo "Result DATA: "; 28 | echo $result[1] . "\n"; 29 | echo "Result XMLCOL: "; 30 | echo $result[2] . "\n"; 31 | } 32 | 33 | $sql = "SELECT XMLSERIALIZE(XMLQUERY('for \$i in \$t/address where \$i/city = \"Olathe\" return {\$i/zip/text()}' passing c.xmlcol as \"t\") AS CLOB(32k)) FROM xml_test c WHERE id = 1"; 34 | $stmt = db2_prepare($conn, $sql); 35 | db2_execute($stmt); 36 | while($result = db2_fetch_both($stmt)) { 37 | echo "Result from XMLSerialize and XMLQuery: "; 38 | echo $result[0] . "\n"; 39 | } 40 | 41 | $sql = "select xmlquery('for \$i in \$t/address where \$i/city = \"Olathe\" return {\$i/zip/text()}' passing c.xmlcol as \"t\") from xml_test c where id = 1"; 42 | $stmt = db2_prepare($conn, $sql); 43 | db2_execute($stmt); 44 | while($result = db2_fetch_both($stmt)) { 45 | echo "Result from only XMLQuery: "; 46 | echo $result[0] . "\n"; 47 | } 48 | 49 | } else { 50 | echo 'no connection: ' + db2_conn_errormsg(); 51 | } 52 | 53 | ?> 54 | --EXPECTF-- 55 | Result ID: 1 56 | Result DATA: xml test 1 57 | Result XMLCOL:%s
12485 S Pine St.OlatheKS66061
58 | Result from XMLSerialize and XMLQuery: 66061 59 | Result from only XMLQuery:%s66061 60 | 61 | -------------------------------------------------------------------------------- /tests/test_check_rollback.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: pConnect Rollback Handler Test. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 83 | --EXPECT-- 84 | Connection succeeded. 85 | Connection succeeded. 86 | row insert went through successfully 87 | Test successful 88 | -------------------------------------------------------------------------------- /tests/test_198_LobReadWriteFromMemory.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_lob_read() -- Reading and writing lobs from memory 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 61 | --EXPECTF-- 62 | Loop 0: THIS I 63 | Loop 1: S A CL 64 | Loop 2: OB TES 65 | Loop 3: T. THI 66 | Loop 4: S IS A 67 | Loop 5: CLOB 68 | Loop 6: TEST. 69 | Loop 0: 544849 70 | Loop 1: 532049 71 | Loop 2: 532041 72 | Loop 3: 20424C 73 | Loop 4: 4F4220 74 | Loop 5: 544553 75 | Loop 6: 542E20 76 | Loop 7: 544849 77 | Loop 8: 532049 78 | Loop 9: 532041 79 | Loop 10: 20424C 80 | Loop 11: 4F4220 81 | Loop 12: 544553 82 | Loop 13: 542E 83 | -------------------------------------------------------------------------------- /tests/test_053_SetAutocommit_02.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: set autocommit with db2_autocommit 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 'db2inst1'); 14 | $conn1 = db2_connect($database, $user, $password, $options1); 15 | $val = db2_get_option($conn1, 'userid'); 16 | echo $val . "\n"; 17 | 18 | $options2 = array('acctstr' => 'account'); 19 | $conn2 = db2_connect($database, $user, $password, $options2); 20 | $val = db2_get_option($conn2, 'acctstr'); 21 | echo $val . "\n"; 22 | 23 | $options3 = array('applname' => 'myapp'); 24 | $conn3 = db2_connect($database, $user, $password, $options3); 25 | $val = db2_get_option($conn3, 'applname'); 26 | echo $val . "\n"; 27 | 28 | $options4 = array('wrkstnname' => 'workstation'); 29 | $conn4 = db2_connect($database, $user, $password, $options4); 30 | $val = db2_get_option($conn4, 'wrkstnname'); 31 | echo $val . "\n"; 32 | 33 | echo "Client attributes passed post-conection:\n"; 34 | 35 | $options5 = array('userid' => 'db2inst1'); 36 | $conn5 = db2_connect($database, $user, $password); 37 | $rc = db2_set_option($conn5, $options5, 1); 38 | $val = db2_get_option($conn5, 'userid'); 39 | echo $val . "\n"; 40 | 41 | $options6 = array('acctstr' => 'account'); 42 | $conn6 = db2_connect($database, $user, $password); 43 | $rc = db2_set_option($conn6, $options6, 1); 44 | $val = db2_get_option($conn6, 'acctstr'); 45 | echo $val . "\n"; 46 | 47 | $options7 = array('applname' => 'myapp'); 48 | $conn7 = db2_connect($database, $user, $password); 49 | $rc = db2_set_option($conn7, $options7, 1); 50 | $val = db2_get_option($conn7, 'applname'); 51 | echo $val . "\n"; 52 | 53 | $options8 = array('wrkstnname' => 'workstation'); 54 | $conn8 = db2_connect($database, $user, $password); 55 | $rc = db2_set_option($conn8, $options8, 1); 56 | $val = db2_get_option($conn8, 'wrkstnname'); 57 | echo $val . "\n"; 58 | ?> 59 | --EXPECT-- 60 | Client attributes passed through conection string: 61 | db2inst1 62 | account 63 | myapp 64 | workstation 65 | Client attributes passed post-conection: 66 | db2inst1 67 | account 68 | myapp 69 | workstation 70 | 71 | -------------------------------------------------------------------------------- /tests/test_047_FetchArrayMany_06.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_array() - several rows 5 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 |
\n",$row[0],$row[1]); 32 | } 33 | if ( $row[1] != 'xwd' ) { 34 | printf ("%s - %s - %s bytes\n", $row['0'], $row[1], $row['0'], $row[1], $row[2]); 35 | print "
"; 36 | } 37 | } 38 | } 39 | 40 | ?> 41 | --EXPECT-- 42 | 000130 - jpg - 15398 bytes 43 |

44 | 000130 - png - 10291 bytes 45 |
000140 - jpg - 15398 bytes 46 |

47 | 000140 - png - 10291 bytes 48 |
000150 - jpg - 15398 bytes 49 |

50 | 000150 - png - 10291 bytes 51 |
000190 - jpg - 15398 bytes 52 |

53 | 000190 - png - 10291 bytes 54 |
55 | -------------------------------------------------------------------------------- /tests/test_152_FetchAssocSelect_03.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: db2_fetch_assoc() - simple select 3 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 29 | --EXPECT-- 30 | 31 | AD3100 ADMIN SERVICES D01 000010 6.50 1982-01-01 1983-02-01 32 | AD3110 GENERAL ADMIN SYSTEMS D21 000070 6.00 1982-01-01 1983-02-01 AD3100 33 | AD3111 PAYROLL PROGRAMMING D21 000230 2.00 1982-01-01 1983-02-01 AD3110 34 | AD3112 PERSONNEL PROGRAMMING D21 000250 1.00 1982-01-01 1983-02-01 AD3110 35 | AD3113 ACCOUNT PROGRAMMING D21 000270 2.00 1982-01-01 1983-02-01 AD3110 36 | IF1000 QUERY SERVICES C01 000030 2.00 1982-01-01 1983-02-01 37 | IF2000 USER EDUCATION C01 000030 1.00 1982-01-01 1983-02-01 38 | MA2100 WELD LINE AUTOMATION D01 000010 12.00 1982-01-01 1983-02-01 39 | MA2110 W L PROGRAMMING D11 000060 9.00 1982-01-01 1983-02-01 MA2100 40 | MA2111 W L PROGRAM DESIGN D11 000220 2.00 1982-01-01 1982-12-01 MA2110 41 | MA2112 W L ROBOT DESIGN D11 000150 3.00 1982-01-01 1982-12-01 MA2110 42 | MA2113 W L PROD CONT PROGS D11 000160 3.00 1982-02-15 1982-12-01 MA2110 43 | OP1000 OPERATION SUPPORT E01 000050 6.00 1982-01-01 1983-02-01 44 | OP1010 OPERATION E11 000090 5.00 1982-01-01 1983-02-01 OP1000 45 | OP2000 GEN SYSTEMS SERVICES E01 000050 5.00 1982-01-01 1983-02-01 46 | OP2010 SYSTEMS SUPPORT E21 000100 4.00 1982-01-01 1983-02-01 OP2000 47 | OP2011 SCP SYSTEMS SUPPORT E21 000320 1.00 1982-01-01 1983-02-01 OP2010 48 | OP2012 APPLICATIONS SUPPORT E21 000330 1.00 1982-01-01 1983-02-01 OP2010 49 | OP2013 DB/DC SUPPORT E21 000340 1.00 1982-01-01 1983-02-01 OP2010 50 | PL2100 WELD LINE PLANNING B01 000020 1.00 1982-01-01 1982-09-15 MA2100 51 | 52 | -------------------------------------------------------------------------------- /tests/test_V6_timestamp.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | IBM-DB2: Timestamp data type test. 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 58 | --EXPECTF-- 59 | Transfering data from src table to targ table: 60 | Values from src table: 61 | array(2) { 62 | [0]=> 63 | NULL 64 | [1]=> 65 | string(26) "1981-05-13-12.56.46.000000" 66 | } 67 | array(2) { 68 | [0]=> 69 | int(1) 70 | [1]=> 71 | string(26) "1981-05-13-12.56.46.000000" 72 | } 73 | array(2) { 74 | [0]=> 75 | int(1) 76 | [1]=> 77 | NULL 78 | } 79 | Values from targ table: 80 | array(2) { 81 | [0]=> 82 | NULL 83 | [1]=> 84 | string(26) "1981-05-13-12.56.46.000000" 85 | } 86 | array(2) { 87 | [0]=> 88 | int(1) 89 | [1]=> 90 | string(26) "1981-05-13-12.56.46.000000" 91 | } 92 | array(2) { 93 | [0]=> 94 | int(1) 95 | [1]=> 96 | NULL 97 | } 98 | --------------------------------------------------------------------------------