ホームページ  >  記事  >  バックエンド開発  >  PHPでデータベース接続のエンコード形式を設定する方法

PHPでデータベース接続のエンコード形式を設定する方法

PHPz
PHPzオリジナル
2023-03-31 09:06:23885ブラウズ

PHP は、一般的に使用されるサーバーサイド プログラミング言語であり、データベースと組み合わせてよく使用されます。コードを記述するプロセス中に、適切な表示と読み書き操作を保証するために、対応するエンコード形式を設定して接続する必要があります。中国語などの特殊文字。

1. PHP エンコード設定

1. デフォルトの文字セットの設定

PHP は header() 関数を使用して、文字セット設定を含む HTTP ヘッダー情報を設定します。 utf-8 エンコーディングを使用すると、中国語や他の言語の文字をサポートできます。コードは次のとおりです:

header("Content-type: text/html; charset=utf-8");

2. 文字列をエンコードします

mb_internal_encoding() 関数を使用して、PHP のデフォルトの文字セットを変更します文字列が正しくエンコードされていることを確認するには、utf -8 に変更します:

mb_internal_encoding("UTF-8");

3. 入力ストリームと出力ストリームのエンコード

ファイルまたはその他のソースの読み取りおよび書き込み操作では、fopen を使用できます。 () 関数 mode パラメーターは、ファイルまたはストリームを開き、エンコード形式を指定します。例:

$fp = fopen("$filename", "r") or die("文件打开失败!");
stream_filter_append($fp, 'convert.iconv.UTF-8/GBK');

2. データベース エンコード設定と接続

1. データベース エンコード設定

MySQL データベースでは、次のコマンドを使用してデフォルトの文字セットを表示できます。 :

mysql> SHOW VARIABLES LIKE 'character_set%';

文字セットを変更する必要がある場合は、SET NAMES コマンドを使用できます (例:

mysql> SET NAMES 'utf8';

2. データベース接続設定

PHP では、 MySQL への接続は mysqli() を介して行われ、PDO() は 2 つのクラスによって実装されます。 mysqli() を使用した接続例は次のとおりです。

$conn = mysqli_connect($server, $user, $password, $dbname);
mysqli_set_charset($conn, 'utf8');

PDO() を使用した接続例は次のとおりです。

$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
$pdo = new PDO($dsn, $user, $password, $options);

上記は、PHP 設定、データベースのエンコード形式の紹介です。そして彼らのつながり。実際のプログラミングでは、中国語などの特殊文字を処理する場合、コードの正確性と安定性を確保するために、状況に応じて適切な設定および接続方法を選択する必要があります。

以上がPHPでデータベース接続のエンコード形式を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。