0

私は自分のウェブサイトデータベースと通信するために使用するPHPで書かれたクラスを持っています。また、データベースと通信するJavaアプリケーションも作成しています。同じ構造を使用してJavaに変換することは可能かどうか疑問に思っていましたが、これを行う場合に考慮する必要のある問題はありますか。これが私のphpクラスです...

<?php

class Database {

    private static $instance = null;
    private $connection;
    private $selected_database;
    private $last_query;

    public static function getInstance() {
        if (self::$instance != null) {
            return self::$instance;
        } else {
            return new self;
        }
    }

    function __construct() {
        $this->open_connection();
    }

    private function open_connection() {
        $this->connection = mysql_connect(DB_HOST, DB_USER, DB_PASS);
        if (!$this->connection) {
            die('Database connection failed: ' . mysql_error());
        } else {
            $this->selected_database = mysql_select_db(DB_NAME, $this->connection);
            if (!$this->selected_database) {
                die('Database selection failed: ' . mysql_error());
            }
        }
    }

    private function close_connection() {
        if (isset($this->connection)) {
            mysql_close($this->connection);
            unset($this->connection);
        }
    }

    public function query($sql) {
        $this->last_query = $sql;
        $result = mysql_query($sql, $this->connection);
        $this->confirm_query($result);
        return $result;
    }

    private function confirm_query($result) {
        if (!$result) {
            die('Database query failed: ' . mysql_error() . '<br>Last SQL query: ' . $this->last_query);
        }
    }

    public function escape_value($string) {
        return mysql_real_escape_string($string);
    }

    public function fetch_array($result) {
        return mysql_fetch_array($result);
    }

    public function fetch_assoc($result) {
        return mysql_fetch_assoc($result);
    }

    public function num_rows($result) {
        return mysql_num_rows($result);
    }

    public function insert_id() {
        return mysql_insert_id($this->connection);
    }

    public function affected_rows() {
        return mysql_affected_rows($this->connection);
    }

    public function get_fields_from($table_name) {
        $result = $this->query("SHOW COLUMNS FROM `{$this->escape_value($table_name)}`");
        $fields = array();
        while ($row = $this->fetch_assoc($result)) {
            $fields[] = $row['Field'];
        }
        return $fields;
    }

}

?>
4

1 に答える 1

4

いいえ、上記のような構造を持つ Java でクラスを作成することはできません。

or die()を投げるようなものExceptionです。Java と PHP では、データベースからデータを返す方法が異なることに注意してください。PHP は、配列または連想配列をよく使用します。Java では、結果への「ポインタ」を取得します。メモリを消費するため、データを配列に転送するかどうかを決定する必要があります。

于 2013-01-19T17:52:03.323 に答える