📄 sql_relay.c
字号:
} RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisnullable) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsNullable((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsNullable((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisprimarykey) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsPrimaryKey((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsPrimaryKey((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisunique) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsUnique((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsUnique((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnispartofkey) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsPartOfKey((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsPartOfKey((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisunsigned) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsUnsigned((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsUnsigned((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumniszerofilled) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsZeroFilled((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsZeroFilled((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisbinary) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsBinary((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsBinary((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getcolumnisautoincrement) { zval **sqlrcur,**col; bool r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getColumnIsAutoIncrement((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getColumnIsAutoIncrement((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getlongest) { zval **sqlrcur,**col; uint32_t r=0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&col) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { if (Z_TYPE_PP(col)==IS_LONG) { convert_to_long_ex(col); r=cursor->getLongest((*col)->value.lval); } else if (Z_TYPE_PP(col)==IS_STRING) { convert_to_string_ex(col); r=cursor->getLongest((*col)->value.str.val); } RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_getresultsetid) { zval **sqlrcur; uint16_t r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcur) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { r=cursor->getResultSetId(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_suspendresultset) { zval **sqlrcur; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcur) == FAILURE) { WRONG_PARAM_COUNT; } sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { cursor->suspendResultSet(); }}DLEXPORT ZEND_FUNCTION(sqlrcur_resumeresultset) { zval **sqlrcur, **id; bool r; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2,&sqlrcur,&id) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_long_ex(id); sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { r=cursor->resumeResultSet((*id)->value.lval); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcur_resumecachedresultset) { zval **sqlrcur, **id, **filename; bool r; if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&sqlrcur,&id,&filename) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_long_ex(id); convert_to_string_ex(filename); sqlrcursor *cursor=NULL; ZEND_FETCH_RESOURCE(cursor,sqlrcursor *,sqlrcur,-1,"sqlrelay cursor",sqlrelay_cursor); if (cursor) { r=cursor->resumeCachedResultSet((*id)->value.lval,(*filename)->value.str.val); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_ping) { zval **sqlrcon; bool r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->ping(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_autocommiton) { zval **sqlrcon; bool r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->autoCommitOn(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_autocommitoff) { zval **sqlrcon; bool r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->autoCommitOff(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_commit) { zval **sqlrcon; bool r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->commit(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_rollback) { zval **sqlrcon; bool r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->rollback(); RETURN_LONG(r); } RETURN_LONG(0);}DLEXPORT ZEND_FUNCTION(sqlrcon_identify) { zval **sqlrcon; const char *r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->identify(); if (r) { RETURN_STRING(const_cast<char *>(r),1); } } RETURN_FALSE;}DLEXPORT ZEND_FUNCTION(sqlrcon_bindformat) { zval **sqlrcon; const char *r; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&sqlrcon) == FAILURE) { WRONG_PARAM_COUNT; } sqlrconnection *connection=NULL; ZEND_FETCH_RESOURCE(connection,sqlrconnection *,sqlrcon,-1,"sqlrelay connection",sqlrelay_connection); if (connection) { r=connection->bindFormat();zend_printf("r=%s\n",r); if (r) { RETURN_STRING(const_cast<char *>(r),1); } } RETURN_FALSE;}zend_function_entry sql_relay_functions[] = { ZEND_FE(sqlrcon_alloc,NULL) ZEND_FE(sqlrcon_free,NULL) ZEND_FE(sqlrcon_settimeout,NULL) ZEND_FE(sqlrcon_endsession,NULL) ZEND_FE(sqlrcon_suspendsession,NULL) ZEND_FE(sqlrcon_getconnectionport,NULL) ZEND_FE(sqlrcon_getconnectionsocket,NULL) ZEND_FE(sqlrcon_resumesession,NULL) ZEND_FE(sqlrcon_debugon,NULL) ZEND_FE(sqlrcon_debugoff,NULL) ZEND_FE(sqlrcon_getdebug,NULL) ZEND_FE(sqlrcur_alloc,NULL) ZEND_FE(sqlrcur_free,NULL) ZEND_FE(sqlrcur_setresultsetbuffersize,NULL) ZEND_FE(sqlrcur_getresultsetbuffersize,NULL) ZEND_FE(sqlrcur_dontgetcolumninfo,NULL) ZEND_FE(sqlrcur_getcolumninfo,NULL) ZEND_FE(sqlrcur_mixedcasecolumnnames,NULL) ZEND_FE(sqlrcur_uppercasecolumnnames,NULL) ZEND_FE(sqlrcur_lowercasecolumnnames,NULL) ZEND_FE(sqlrcur_cachetofile,NULL) ZEND_FE(sqlrcur_setcachettl,NULL) ZEND_FE(sqlrcur_getcachefilename,NULL) ZEND_FE(sqlrcur_cacheoff,NULL) ZEND_FE(sqlrcur_sendquery,NULL) ZEND_FE(sqlrcur_sendquerywithlength,NULL) ZEND_FE(sqlrcur_sendfilequery,NULL) ZEND_FE(sqlrcur_preparequery,NULL) ZEND_FE(sqlrcur_preparequerywithlength,NULL) ZEND_FE(sqlrcur_preparefilequery,NULL) ZEND_FE(sqlrcur_substitution,NULL) ZEND_FE(sqlrcur_clearbinds,NULL) ZEND_FE(sqlrcur_countbindvariables,NULL) ZEND_FE(sqlrcur_inputbind,NULL) ZEND_FE(sqlrcur_inputbindblob,NULL) ZEND_FE(sqlrcur_inputbindclob,NULL) ZEND_FE(sqlrcur_defineoutputbindstring,NULL) ZEND_FE(sqlrcur_defineoutputbindinteger,NULL) ZEND_FE(sqlrcur_defineoutputbinddouble,NULL) ZEND_FE(sqlrcur_defineoutputbindblob,NULL) ZEND_FE(sqlrcur_defineoutputbindclob,NULL) ZEND_FE(sqlrcur_defineoutputbindcursor,NULL) ZEND_FE(sqlrcur_substitutions,NULL) ZEND_FE(sqlrcur_inputbinds,NULL) ZEND_FE(sqlrcur_validatebinds,NULL) ZEND_FE(sqlrcur_validbind,NULL) ZEND_FE(sqlrcur_executequery,NULL) ZEND_FE(sqlrcur_fetchfrombindcursor,NULL) ZEND_FE(sqlrcur_getoutputbindstring,NULL) ZEND_FE(sqlrcur_getoutputbindblob,NULL) ZEND_FE(sqlrcur_getoutputbindclob,NULL) ZEND_FE(sqlrcur_getoutputbindinteger,NULL) ZEND_FE(sqlrcur_getoutputbinddouble,NULL) ZEND_FE(sqlrcur_getoutputbindlength,NULL) ZEND_FE(sqlrcur_getoutputbindcursor,NULL) ZEND_FE(sqlrcur_opencachedresultset,NULL) ZEND_FE(sqlrcur_colcount,NULL) ZEND_FE(sqlrcur_rowcount,NULL) ZEND_FE(sqlrcur_totalrows,NULL) ZEND_FE(sqlrcur_affectedrows,NULL) ZEND_FE(sqlrcur_firstrowindex,NULL) ZEND_FE(sqlrcur_endofresultset,NULL) ZEND_FE(sqlrcur_errormessage,NULL) ZEND_FE(sqlrcur_getnullsasemptystrings,NULL) ZEND_FE(sqlrcur_getnullsasnulls,NULL) ZEND_FE(sqlrcur_getfield,NULL) ZEND_FE(sqlrcur_getfieldlength,NULL) ZEND_FE(sqlrcur_getrow,NULL) ZEND_FE(sqlrcur_getrowassoc,NULL) ZEND_FE(sqlrcur_getrowlengths,NULL) ZEND_FE(sqlrcur_getrowlengthsassoc,NULL) ZEND_FE(sqlrcur_getcolumnnames,NULL) ZEND_FE(sqlrcur_getcolumnname,NULL) ZEND_FE(sqlrcur_getcolumntype,NULL) ZEND_FE(sqlrcur_getcolumnlength,NULL) ZEND_FE(sqlrcur_getcolumnprecision,NULL) ZEND_FE(sqlrcur_getcolumnscale,NULL) ZEND_FE(sqlrcur_getcolumnisnullable,NULL) ZEND_FE(sqlrcur_getcolumnisprimarykey,NULL) ZEND_FE(sqlrcur_getcolumnisunique,NULL) ZEND_FE(sqlrcur_getcolumnispartofkey,NULL) ZEND_FE(sqlrcur_getcolumnisunsigned,NULL) ZEND_FE(sqlrcur_getcolumniszerofilled,NULL) ZEND_FE(sqlrcur_getcolumnisbinary,NULL) ZEND_FE(sqlrcur_getcolumnisautoincrement,NULL) ZEND_FE(sqlrcur_getlongest,NULL) ZEND_FE(sqlrcur_getresultsetid,NULL) ZEND_FE(sqlrcur_suspendresultset,NULL) ZEND_FE(sqlrcur_resumeresultset,NULL) ZEND_FE(sqlrcur_resumecachedresultset,NULL) ZEND_FE(sqlrcon_ping,NULL) ZEND_FE(sqlrcon_identify,NULL) ZEND_FE(sqlrcon_autocommiton,NULL) ZEND_FE(sqlrcon_autocommitoff,NULL) ZEND_FE(sqlrcon_commit,NULL) ZEND_FE(sqlrcon_rollback,NULL) ZEND_FE(sqlrcon_bindformat,NULL) {NULL,NULL,NULL}};zend_module_entry sql_relay_module_entry = { #if ZEND_MODULE_API_NO >= 20010901 STANDARD_MODULE_HEADER, #endif "sql_relay", sql_relay_functions, // extension-wide startup function#ifdef ZEND_MODULE_STARTUP_N ZEND_MODULE_STARTUP_N(sqlrelay),#else NULL,#endif // extension-wide shutdown function NULL, // per-request startup function NULL, // per-request shutdown function NULL, NULL, #if ZEND_MODULE_API_NO >= 20010901 "0.30", #endif STANDARD_MODULE_PROPERTIES};DLEXPORT ZEND_GET_MODULE(sql_relay)}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -