📄 php_fbsql.c
字号:
break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); md = fbcdcCommit(phpLink->connection); if (md) { fbcmdRelease(md); RETURN_TRUE; } else RETURN_FALSE;}/* }}} *//* {{{ proto int fbsql_rollback([resource link_identifier]) Rollback all statments since last commit */PHP_FUNCTION(fbsql_rollback){ PHPFBLink* phpLink = NULL; FBCMetaData* md; zval **fbsql_link_index = NULL; int id; switch (ZEND_NUM_ARGS()) { case 0: id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); md = fbcdcRollback(phpLink->connection); if (md) { fbcmdRelease(md); RETURN_TRUE; } else RETURN_FALSE;}/* }}} */static void php_fbsql_create_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type){ PHPFBLink* phpLink = NULL; FBCBlobHandle *lobHandle; zval **lob_data, **fbsql_link_index = NULL; int id; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &lob_data)==FAILURE) { RETURN_FALSE; } id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &lob_data, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); convert_to_string_ex(lob_data); switch (lob_type) { case 0 : /* BLOB */ lobHandle = fbcdcWriteBLOB(phpLink->connection, Z_STRVAL_PP(lob_data), Z_STRLEN_PP(lob_data)); break; case 1 : /* CLOB */ lobHandle = fbcdcWriteCLOB(phpLink->connection, Z_STRVAL_PP(lob_data)); break; } if (lobHandle) { RETURN_STRING(fbcbhDescription(lobHandle), 1); fbcbhRelease(lobHandle); } else RETURN_FALSE;}/* {{{ proto string fbsql_create_blob(string blob_data [, resource link_identifier]) Create a BLOB in the database for use with an insert or update statement */PHP_FUNCTION(fbsql_create_blob){ php_fbsql_create_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_create_clob(string clob_data [, resource link_identifier]) Create a CLOB in the database for use with an insert or update statement */PHP_FUNCTION(fbsql_create_clob){ php_fbsql_create_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} *//* {{{ proto bool fbsql_set_lob_mode(resource result, int lob_mode) Sets the mode for how LOB data re retreived (actual data or a handle) */PHP_FUNCTION(fbsql_set_lob_mode){ PHPFBResult* result = NULL; zval **fbsql_result_index = NULL, **lob_mode = NULL; switch (ZEND_NUM_ARGS()) { case 2: if (zend_get_parameters_ex(2, &fbsql_result_index, &lob_mode)==FAILURE) { RETURN_FALSE; } convert_to_long_ex(lob_mode); break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE(result, PHPFBResult *, fbsql_result_index, -1, "FrontBase-Result", le_result); result->lobMode = Z_LVAL_PP(lob_mode); RETURN_TRUE;}/* }}} */static void php_fbsql_read_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type){ PHPFBLink* phpLink = NULL; zval **lob_handle, **fbsql_link_index = NULL; int id; long length = 0; char* value = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &lob_handle)==FAILURE) { RETURN_FALSE; } id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &lob_handle, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); convert_to_string_ex(lob_handle); if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') { if (FB_SQL_G(generateWarnings)) php_error_docref(NULL TSRMLS_CC, E_WARNING, "The handle is invalid"); RETURN_FALSE; } length = fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle)); if (lob_type == 0) value = estrndup((char *)fbcdcReadBLOB(phpLink->connection, (FBCBlobHandle *)Z_STRVAL_PP(lob_handle)), length); else value = estrndup((char *)fbcdcReadCLOB(phpLink->connection, (FBCBlobHandle *)Z_STRVAL_PP(lob_handle)), length); if (value) { RETURN_STRINGL(value, length, 0); } else { RETURN_FALSE; }}/* {{{ proto string fbsql_read_blob(string blob_handle [, resource link_identifier]) Read the BLOB data identified by blob_handle */PHP_FUNCTION(fbsql_read_blob){ php_fbsql_read_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_read_clob(string clob_handle [, resource link_identifier]) Read the CLOB data identified by clob_handle */PHP_FUNCTION(fbsql_read_clob){ php_fbsql_read_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} */static void php_fbsql_lob_size(INTERNAL_FUNCTION_PARAMETERS, int lob_type){ PHPFBLink* phpLink = NULL; zval **lob_handle, **fbsql_link_index = NULL; int id; char* value = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &lob_handle)==FAILURE) { RETURN_FALSE; } id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &lob_handle, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); convert_to_string_ex(lob_handle); if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') { if (FB_SQL_G(generateWarnings)) php_error_docref(NULL TSRMLS_CC, E_WARNING, "The handle is invalid"); RETURN_FALSE; } RETURN_LONG(fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle)));}/* {{{ proto string fbsql_blob_size(string blob_handle [, resource link_identifier]) Get the size of a BLOB identified by blob_handle */PHP_FUNCTION(fbsql_blob_size){ php_fbsql_lob_size(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_clob_size(string clob_handle [, resource link_identifier]) Get the size of a CLOB identified by clob_handle */PHP_FUNCTION(fbsql_clob_size){ php_fbsql_lob_size(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} *//* {{{ proto string fbsql_hostname(resource link_identifier [, string host_name]) Get or set the host name used with a connection */PHP_FUNCTION(fbsql_hostname){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **host_name = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } break; case 2: if (zend_get_parameters_ex(2, &fbsql_link_index, &host_name)==FAILURE) { RETURN_FALSE; } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); if (host_name) { convert_to_string_ex(host_name); if (phpLink->hostName) free(phpLink->hostName); phpLink->hostName = strdup(Z_STRVAL_PP(host_name)); } RETURN_STRING(phpLink->hostName, 1);}/* }}} *//* {{{ proto string fbsql_database(resource link_identifier [, string database]) Get or set the database name used with a connection */PHP_FUNCTION(fbsql_database){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **dbname = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } break; case 2: if (zend_get_parameters_ex(2, &fbsql_link_index, &dbname)==FAILURE) { RETURN_FALSE; } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); if (dbname) { convert_to_string_ex(dbname); if (phpLink->databaseName) free(phpLink->databaseName); phpLink->databaseName = strdup(Z_STRVAL_PP(dbname)); } if (phpLink->databaseName) { RETURN_STRING(phpLink->databaseName, 1); } else { RETURN_FALSE; }}/* }}} *//* {{{ proto string fbsql_database_password(resource link_identifier [, string database_password]) Get or set the databsae password used with a connection */PHP_FUNCTION(fbsql_database_password){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **db_password = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } break; case 2: if (zend_get_parameters_ex(2, &fbsql_link_index, &db_password)==FAILURE) { RETURN_FALSE; } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); if (db_password) { convert_to_string_ex(db_password); if (phpLink->databasePassword) free(phpLink->databasePassword); phpLink->databasePassword = strdup(Z_STRVAL_PP(db_password)); } RETURN_STRING(phpLink->databasePassword, 1);}/* }}} *//* {{{ proto string fbsql_username(resource link_identifier [, string username]) Get or set the host user used with a connection */PHP_FUNCTION(fbsql_username){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **username = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } break; case 2: if (zend_get_parameters_ex(2, &fbsql_link_index, &username)==FAILURE) { RETURN_FALSE; } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); if (username) { convert_to_string_ex(username); if (phpLink->userName) free(phpLink->userName); phpLink->userName = strdup(Z_STRVAL_PP(username)); } RETURN_STRING(phpLink->userName, 1);}/* }}} *//* {{{ proto string fbsql_password(resource link_identifier [, string password]) Get or set the user password used with a connection */PHP_FUNCTION(fbsql_password){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **password = NULL; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { RETURN_FALSE; } break; case 2: if (zend_get_parameters_ex(2, &fbsql_link_index, &password)==FAILURE) { RETURN_FALSE; } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); if (password) { convert_to_string_ex(password); if (phpLink->userPassword) free(phpLink->userPassword); phpLink->userPassword = strdup(Z_STRVAL_PP(password)); } RETURN_STRING(phpLink->userPassword, 1);}/* }}} *//* {{{ proto bool fbsql_select_db([string database_name [, resource link_identifier]]) Select the database to open */PHP_FUNCTION(fbsql_select_db){ PHPFBLink* phpLink = NULL; zval **fbsql_link_index = NULL, **dbname; int id; char* name = NULL; switch (ZEND_NUM_ARGS()) { case 0: name = FB_SQL_G(databaseName); id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 1: id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); if (zend_get_parameters_ex(1, &dbname)==FAILURE) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -