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 + -
显示快捷键?