mysqlimodule.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 1,441 行 · 第 1/3 页
JAVA
1,441 行
@Optional StringValue dbname, @Optional("3306") int port, @Optional StringValue socket, @Optional int flags) { if (mysqli == null) return false; return mysqli.real_connect(env, host, userName, password, dbname, port, socket, flags); } /** * Escapes the following special character in unescapedString. * * @return the escaped string. */ public static Value mysqli_real_escape_string(Env env, @NotNull Mysqli conn, StringValue unescapedString) { if (conn == null) return NullValue.NULL; if (unescapedString.length() == 0) return env.getEmptyString(); StringBuilder buf = new StringBuilder(); escapeString(buf, unescapedString.toString()); return env.createString(buf.toString()); } static void escapeString(StringBuilder buf, String unescapedString) { char c; final int strLength = unescapedString.length(); for (int i = 0; i < strLength; i++) { c = unescapedString.charAt(i); switch (c) { case '\u0000': buf.append('\\'); buf.append('\u0000'); break; case '\n': buf.append('\\'); buf.append('n'); break; case '\r': buf.append('\\'); buf.append('r'); break; case '\\': buf.append('\\'); buf.append('\\'); break; case '\'': buf.append('\\'); buf.append('\''); break; case '"': buf.append('\\'); buf.append('\"'); break; case '\032': buf.append('\\'); buf.append('Z'); break; default: buf.append(c); break; } } } /** * Execute an single query against the database whose result can then be retrieved * or stored using the mysqli_store_result() or mysqli_use_result() functions. */ public static boolean mysqli_real_query(Env env, @NotNull Mysqli conn, StringValue query) { if (conn == null) return false; return conn.real_query(env, query); } /** * Execute a query with arguments and return a result. */ static Value mysqli_query(Env env, Mysqli conn, StringValue query, Object ... args) { StringBuilder buf = new StringBuilder(); int size = query.length(); int argIndex = 0; for (int i = 0; i < size; i++) { char ch = buf.charAt(i); if (ch == '?') { Object arg = args[argIndex++]; if (arg == null) throw new IllegalArgumentException(L.l("argument `{0}' cannot be null", arg)); buf.append('\''); escapeString(buf, String.valueOf(arg)); buf.append('\''); } else buf.append(ch); } return query(env, conn, env.createString(buf.toString())); } /** * Select the database for a connection. */ public static boolean mysqli_select_db(Mysqli conn, StringValue dbName) { if (conn == null) return false; return conn.select_db(dbName); } /** * Returns a string with the status of the connection * or FALSE if error. */ public static Value mysqli_stat(Env env, @NotNull Mysqli conn) { if (conn == null) return BooleanValue.FALSE; return conn.stat(env); } /** * Return the number of rows affected by an INSERT, UPDATE, or DELETE * query. Unlike mysqli_stmt_num_rows(), this method does not return * the number of rows matched by a SELECT query. */ public static int mysqli_stmt_affected_rows(Env env, @NotNull MysqliStatement stmt) { if (stmt == null) return -1; if (stmt.errno() != 0) return -1; return stmt.affected_rows(env); } /** * Binds variables for the parameter markers * in SQL statement that was passed to * {@link #mysqli_prepare}. * * Type specification chars: * <dl> * <dt>i<dd>corresponding variable has type integer; * <dt>d<dd>corresponding variable has type double; * <dt>b<dd>corresponding variable is a blob and will be sent in packages * <dt>s<dd>corresponding variable has type string (which really means all other types); * </dl> */ public static boolean mysqli_stmt_bind_param(Env env, @NotNull MysqliStatement stmt, StringValue types, @Reference Value[] params) { if (stmt == null) return false; return stmt.bind_param(env, types, params); } /** * Binds outparams to result set. */ public static boolean mysqli_stmt_bind_result(Env env, @NotNull MysqliStatement stmt, @Reference Value[] outParams) { if (stmt == null) return false; return stmt.bind_result(env, outParams); } /** * Closes the statement. */ public boolean mysql_stmt_close(MysqliStatement stmt) { if (stmt == null) return false; stmt.close(); return true; } /** * Seeks to a given result. * * @return NULL on sucess or FALSE on failure */ public Value mysqli_stmt_data_seek(Env env, @NotNull MysqliStatement stmt, int offset) { if (stmt == null) return BooleanValue.FALSE; return stmt.data_seek(env, offset); } /** * Returns the error number. */ public int mysql_stmt_errno(Env env, MysqliStatement stmt) { if (stmt != null) return stmt.errno(); else return 0; } /** * Returns a descrption of the error or an empty strng for no error. */ public StringValue mysql_stmt_error(Env env, MysqliStatement stmt) { if (stmt == null) return null; return stmt.error(env); } /** * Executes a statement that has been prepared using {@link #mysqli_prepare}. * * @return true on success or false on failure */ public static boolean mysqli_stmt_execute(Env env, @NotNull MysqliStatement stmt) { if (stmt == null) return false; return stmt.execute(env); } /** * Fetch results from a prepared statement. * @return true on success, false on error, null if no more rows. */ public static Value mysqli_stmt_fetch(Env env, @NotNull MysqliStatement stmt) { if (stmt == null) return BooleanValue.FALSE; return stmt.fetch(env); } /** * Frees the result. */ public static boolean mysqli_stmt_free_result(Env env, MysqliStatement stmt) { if (stmt == null) return false; stmt.free_result(env); return true; } /** * Deprecated alias for {@link #mysqli_stmt_bind_result}. */ public static boolean mysqli_bind_result(Env env, @NotNull MysqliStatement stmt, @Reference Value[] outParams) { return mysqli_stmt_bind_result(env, stmt, outParams); } /** * Changes the user and database. */ public static boolean mysqli_change_user(@NotNull Mysqli mysqli, StringValue user, StringValue password, StringValue db) { if (mysqli == null) return false; return mysqli.change_user(user, password, db); } /** * Deprecated alias for {@link #mysqli_stmt_execute}. */ public static boolean mysqli_execute(Env env, @NotNull MysqliStatement stmt) { return mysqli_stmt_execute(env, stmt); } /** * Deprecated alias for {@link #mysqli_stmt_result_metadata}. */ @ReturnNullAsFalse public static JdbcResultResource mysqli_get_metadata(Env env, @NotNull MysqliStatement stmt) { return mysqli_stmt_result_metadata(env, stmt); } /** * Creates a new mysqli object. */ public static Mysqli mysqli_init(Env env) { return new Mysqli(env); } /** * Prepares a statement. */ @ReturnNullAsFalse public static MysqliStatement mysqli_prepare(Env env, @NotNull Mysqli conn, StringValue query) { if (conn == null) return null; return conn.prepare(env, query); } /** * Closes a statement. */ public static boolean mysqli_stmt_close(Env env, @NotNull MysqliStatement stmt) { if (stmt == null) return false; return stmt.close(env); } /** * Returns a statement for use with {@link #mysqli_stmt_prepare} */ public static MysqliStatement mysqli_stmt_init(Env env, @NotNull Mysqli conn) { if (conn == null) return null; return conn.stmt_init(env); } /** * Get information about the most recent query. */ public static Value mysqli_info(Env env, @Optional Mysqli conn) { if (conn == null) return null; return conn.info(env); } /** * Undocumented */ public static int mysqli_stmt_field_count(Env env, @NotNull MysqliStatement stmt) { if (stmt == null) return -1; return stmt.field_count(env); } /** * Query an identifier that corresponds to this specific * connection. Mysql calls this integer identifier a * thread, but it is really a connection identifier. */ public static Value mysqli_thread_id(Env env, @NotNull Mysqli conn) { if (conn == null) return BooleanValue.FALSE; return conn.thread_id(env); } /** * Terminate a Mysql connection with the given thread id. * It should be possible to terminate any connection id * via this method. In practice, only the mysqli_thread_id * API returns a thread id, so only the id of the current * thread can be looked up. */ public static boolean mysqli_kill(Env env, @NotNull Mysqli conn, int threadId) { if (conn == null) return false; return conn.kill(env, threadId); } // Undocumented // // mysqli_enable_reads_from_master // mysqli_disable_reads_from_master // mysqli_enable_rpl_parse // mysqli_disable_rpl_parse // mysqli_rpl_parse_enabled // mysqli_rpl_probe // mysqli_rpl_query_type // mysqli_embedded_server_start // mysqli_embedded_server_end // mysqli_get_charset // mysqli_master_query // mysqli_send_query // mysqli_server_end // mysqli_server_init // mysqli_set_local_infile_default // mysqli_set_local_infile_handler // mysqli_slave_query // mysqli_stmt_attr_get // mysqli_stmt_attr_set // mysqli_stmt_get_warnings // mysqli_stmt_insert_id // Unimplemented // //@todo mysqli_debug //@todo mysqli_dump_debug_info //@todo mysqli_kill //@todo mysqli_report //@todo mysqli_send_long_data (alias for mysqli_stmt_send_long_data) //@todo mysqli_set_charset //@todo mysqli_ssl_set //@todo mysqli_stmt_send_long_data //@todo mysqli_thread_safe}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?