関数としてのクラス内にデータベーステーブルを作成する

カイルトーマス

読みやすさだけでなく、作業中のプロジェクトのカスタマイズのためにも、コードを短くするトリックを実行しようとしています。

データベースに接続するクラスを作成しましたが、列を含むテーブルを作成するために使用する関数に苦労しています。

これまでのところ、クラスは次のようになっています。

class DataBase {

    private $link;
    private $host, $username, $password, $database;

    public function __construct($host, $username, $password, $database){
        $this->host        = $host;
        $this->username    = $username;
        $this->password    = $password;
        $this->database    = $database;

        $this->link = mysql_connect($this->host, $this->username, $this->password)
            OR die("There was a problem connecting to the database.");

        mysql_select_db($this->database, $this->link)
            OR die("There was a problem selecting the database.");

        return true;
    }

    public function query($query) {
        $result = mysql_query($query);
        if (!$result) die('Invalid query: ' . mysql_error());
        return $result;
    }

    public function __destruct() {
        mysql_close($this->link)
            OR die("There was a problem disconnecting from the database.");
    }
}

ご覧のとおり、クエリの方法はすでに追加されています。その実行方法の例は次のとおりです。

$db = new DataBase('localhost',$user,$pass,$name);
$db->query('SELECT * FROM table WHERE id="0"');

誰かが私に挿入テーブルを追加する関数を追加するためのコードを送ってくれましたか?私はこれを試しました:

public function create_table($t_data) {
    $result = $t_data;
    if (!$result) die('Invalid query: ' . mysql_error());
    return $result;
}

使用法:

$t_data = 'CREATE TABLE log_users(
     uid VARCHAR(1024) NOT NULL,
     username VARCHAR(33) NOT NULL,
     password VARCHAR(18) NOT NULL,
     admin VARCHAR(1) DEFAULT 0,
     key VARCHAR(18) NOT NULL,
     constant VARCHAR(1) DEFAULT 0)';

 $db->create_table($t_data);
キャメルケース

私は見てお勧めでしょうMySQLiPDOあなたは推奨されない機能使用しているので、mysqlそれが今立っているように脆弱です。私はあなたが始めるためにあなたのクラスを更新しました(テストされていません)。これにより、テーブルを作成できないという元の問題も修正されます。

class DataBase {

    private $link;
    // May not need these, see updated __construct method
    private $host, $username, $password, $database;

    public function __construct($host, $username, $password, $database){
        // Unless you need them elsewhere, no reason to set $this->host, $this->username, etc...you can just access directly like below
        $this->link = new mysqli($host, $username, $password, $database);

        // Check connection (which also checks selection of database)
        if ($this->link->connect_error) {
            die("Connection failed: " . $this->link->connect_error);
        }
    }

    // You will need to research and update this to work with mysqli (right now it's ripe for SQL injection)!
    public function query($query) {
        $result = mysql_query($query);
        if (!$result) die('Invalid query: ' . mysql_error());
        return $result;
    }

    // This method will create a table based on the SQL you send it
    public function create_table($sql) {
        if ($this->link->query($sql) === TRUE) {
            return "Table created successfully";
        } else {
            return "Error creating table: " . $this->link->error;
        }
    }

    // Close connection
    public function __destruct() {
        $this->link->close();
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Railsのクライアントごとに異なるテーブルを使用して個別のデータベースを作成する方法

分類Dev

データベース内のテーブルごとにSQLiteOpenHelperを継承するクラスを作成する必要がありますか?

分類Dev

Ruby onRails-異なるクラス内にデータベーステーブルを作成する

分類Dev

モデルとデータベーステーブルの間に1対多の関係を作成する

分類Dev

流暢な NHibernate の複数の抽象クラス継承。抽象クラスのデータベースにテーブルを作成せずに具体的なクラスごとにテーブルを作成する方法

分類Dev

LinqとEntityFramework6を使用して、データベース内の継承と同じテーブルを持つクラスを連結する方法は?

分類Dev

データセットとデータテーブルを使用して、データベースなしでCrystalレポートC#を作成し、このデータテーブルに独自の変数を入力する方法は?

分類Dev

SQLのキーを使用してデータベース内の複数のテーブルを接続する

分類Dev

テーブル内の特定の行をクリックしたときに、データベース内の特定の行のデータを表示する方法

分類Dev

データベース内のテーブルをWikiのテンプレートとして使用する

分類Dev

関数とhtmlテーブルにデータベース値をロードしています

分類Dev

SSISプロジェクトのパラメーターと変数を構成するには、SQLServerデータベーステーブルを使用します

分類Dev

クラス内に存在するテーブル内のテーブルデータを識別します

分類Dev

データベース内の複数のテーブルを更新するRailsコントローラーを作成します

分類Dev

データベース内のすべてのテーブルをHTMLテーブルとして表示するにはどうすればよいですか?

分類Dev

データベース内の複数のテーブル用にdebeziumコネクタを構成します

分類Dev

Pythonを使用してMYSQLデータベースにテーブルエラーを作成する

分類Dev

関数の代わりにJqueryを使用してテーブルのデータにアクセスする

分類Dev

関係に基づいてデータベース内のすべてのテーブルを結合するクエリのスクリプト

分類Dev

新しいBPMNプロシージャを作成するときに、camundaデータベースにデータが保存されるテーブルの数

分類Dev

シートにテーブルをロードせずに、ExcelでMySQLデータベーステーブルの行数をVBA変数として取得する

分類Dev

AUTOINCREMENTで複合主キーを使用してSQLiteデータベースにテーブルを作成するときにエラーが発生しました

分類Dev

データベース内の複数のテーブルに対して同じクエリを実行する方法

分類Dev

wordpressプラグインを使用してデータベースにテーブルを作成する方法

分類Dev

コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

分類Dev

SQLite3を使用して変数からデータベーステーブルに値をインポートするときのStrベースのValueError

分類Dev

Entity Frameworkを使用して、データベース内のどのテーブルのモデルでもないカスタムモデルを作成する

分類Dev

単一のmysqlクエリ:データベースにテーブルと列のNULL値を作成する

分類Dev

このクエリで2つのテーブルからデータをプルして新しいテーブルを作成しようとすると、「エラー:すべての派生テーブルには独自のエイリアスが必要です」

Related 関連記事

  1. 1

    Railsのクライアントごとに異なるテーブルを使用して個別のデータベースを作成する方法

  2. 2

    データベース内のテーブルごとにSQLiteOpenHelperを継承するクラスを作成する必要がありますか?

  3. 3

    Ruby onRails-異なるクラス内にデータベーステーブルを作成する

  4. 4

    モデルとデータベーステーブルの間に1対多の関係を作成する

  5. 5

    流暢な NHibernate の複数の抽象クラス継承。抽象クラスのデータベースにテーブルを作成せずに具体的なクラスごとにテーブルを作成する方法

  6. 6

    LinqとEntityFramework6を使用して、データベース内の継承と同じテーブルを持つクラスを連結する方法は?

  7. 7

    データセットとデータテーブルを使用して、データベースなしでCrystalレポートC#を作成し、このデータテーブルに独自の変数を入力する方法は?

  8. 8

    SQLのキーを使用してデータベース内の複数のテーブルを接続する

  9. 9

    テーブル内の特定の行をクリックしたときに、データベース内の特定の行のデータを表示する方法

  10. 10

    データベース内のテーブルをWikiのテンプレートとして使用する

  11. 11

    関数とhtmlテーブルにデータベース値をロードしています

  12. 12

    SSISプロジェクトのパラメーターと変数を構成するには、SQLServerデータベーステーブルを使用します

  13. 13

    クラス内に存在するテーブル内のテーブルデータを識別します

  14. 14

    データベース内の複数のテーブルを更新するRailsコントローラーを作成します

  15. 15

    データベース内のすべてのテーブルをHTMLテーブルとして表示するにはどうすればよいですか?

  16. 16

    データベース内の複数のテーブル用にdebeziumコネクタを構成します

  17. 17

    Pythonを使用してMYSQLデータベースにテーブルエラーを作成する

  18. 18

    関数の代わりにJqueryを使用してテーブルのデータにアクセスする

  19. 19

    関係に基づいてデータベース内のすべてのテーブルを結合するクエリのスクリプト

  20. 20

    新しいBPMNプロシージャを作成するときに、camundaデータベースにデータが保存されるテーブルの数

  21. 21

    シートにテーブルをロードせずに、ExcelでMySQLデータベーステーブルの行数をVBA変数として取得する

  22. 22

    AUTOINCREMENTで複合主キーを使用してSQLiteデータベースにテーブルを作成するときにエラーが発生しました

  23. 23

    データベース内の複数のテーブルに対して同じクエリを実行する方法

  24. 24

    wordpressプラグインを使用してデータベースにテーブルを作成する方法

  25. 25

    コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

  26. 26

    SQLite3を使用して変数からデータベーステーブルに値をインポートするときのStrベースのValueError

  27. 27

    Entity Frameworkを使用して、データベース内のどのテーブルのモデルでもないカスタムモデルを作成する

  28. 28

    単一のmysqlクエリ:データベースにテーブルと列のNULL値を作成する

  29. 29

    このクエリで2つのテーブルからデータをプルして新しいテーブルを作成しようとすると、「エラー:すべての派生テーブルには独自のエイリアスが必要です」

ホットタグ

アーカイブ