0

データベースに接続するための定数を定義します

define("DB_SERVER", "127.0.0.1");
define("DB_USER", "chutnej_app");
define("DB_PASS", "1234");
define("DB_NAME", "chutnej");

データベース接続を作成する

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

これはmysqlのテーブルです

CREATE TABLE category (
    category_id INT NOT NULL AUTO_INCREMENT,
    category_name VARCHAR(255) UNIQUE,
    PRIMARY KEY (category_id)
    ) 
ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

テーブルにいくつかのデータを入力します。

INSERT INTO category (category_name) VALUES ('Reportáže'), ('Rozhovory'), ('Místa');

テーブルから上記のデータを選択するために呼び出すこの関数

function get_category() { 
    global $connection;
    $query = "SELECT * FROM category";
    $categories = mysqli_query($connection, $query);  
    confirm_query($categories);

    while($category = mysqli_fetch_array($categories)) {
      echo "<option value=\"{$category['category_id']}\">{$category['category_name']} </option>";
    }  
} 

結果:

<li>
  <label for="article_category">Druh článku:</label><br />
  <select name="article_category" id="article_category" type="text">
  <option value="3">M�sta</option><option value="1">Report��e</option><option value="2">Rozhovory</option> 
  </select>
</li>

それが私がブラウザで得たものです。すべてのブラウザがこれを行います。ブラウザのエンコーディングはUTF-8に設定されています。誰が問題の原因を説明できますか? 少なくとも正しい方向に向けてください。それで十分です:)ステートメントでUTF8を指定するだけで、CREATE TABLEエンコーディングの問題を解決できると思いました。

4

2 に答える 2

1

使用する

mysqli_set_charset($connection, 'utf8');

データベース接続の文字セットも UTF-8 に設定します。(ドキュメントを参照)

于 2013-10-10T19:45:46.540 に答える
0

実行する

SET NAMES utf8

接続後の最初のクエリとして。現在のテーブル データを書き換える必要がある場合があります。

ドキュメント:

于 2013-10-10T19:39:32.680 に答える