📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
PHPにおいて、MySQLへの接続とCRUDの手順を記載する。<br>
PHPにおいて、MySQLへの接続とCRUDの手順を記載する。<br>
<br><br>
== 環境設定 (Windowsのみ) ==
PHPでMySQLを使用できるように、php.iniファイルの設定を変更する。<br>
# php.iniファイル
# 編集前
;extension=php_mysql.dll
# 編集後
extension=php_mysql.dll
<br><br>
<br><br>


791行目: 802行目:
このように、'のような特殊な意味を持つ文字を、単なる文字の'として処理することができる。<br>
このように、'のような特殊な意味を持つ文字を、単なる文字の'として処理することができる。<br>
<br><br>
<br><br>
== 暗号化 / 復号 ==
データベースの接続情報を暗号化する場合は、openssl_encrypt / decrypt関数を使用して暗号化 / 復号を行う。<br>
<br>
暗号化キー (ENCRYPTION_KEY) と IV(ENCRYPTION_IV) は、ソースコードとは別の場所に保管する。<br>
<br>
また、INIファイルには暗号化された値を保存する必要がある。<br>
<br>
初期設定時において、以下に示すように値を暗号化して設定ファイルに保存する。<br>
<syntaxhighlight lang="php">
$encrypted_password = encryptString('実際のパスワード');
</syntaxhighlight>
<br>
<syntaxhighlight lang="php">
// 暗号化キーとIVを安全な場所に保存する
define('ENCRYPTION_KEY', '<32[byte]の秘密鍵>');
define('ENCRYPTION_IV', '<16バイトのIV>');
// 暗号化関数
function encryptString($plaintext)
{
    $cipher = "aes-256-cbc";
    $options = OPENSSL_RAW_DATA;
    return base64_encode(openssl_encrypt($plaintext,
                                        $cipher,
                                        ENCRYPTION_KEY,
                                        $options,
                                        ENCRYPTION_IV));
}
// 復号関数
function decryptString($encrypted)
{
    $cipher = "aes-256-cbc";
    $options = OPENSSL_RAW_DATA;
    return openssl_decrypt(base64_decode($encrypted),
                          $cipher,
                          ENCRYPTION_KEY,
                          $options,
                          ENCRYPTION_IV);
}
</syntaxhighlight>
<br>
<syntaxhighlight lang="php">
// 使用例
// INIファイルから読み込んだ接続情報を復号して使用
$host    = decryptString($config['host']) ?? 'localhost';
$dbname  = decryptString($config['dbname']) ?? '';
$username = decryptString($config['username']) ?? 'root';
$password = decryptString($config['password']) ?? '';
</syntaxhighlight>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:Web]][[カテゴリ:MySQL]]
[[カテゴリ:Web]][[カテゴリ:MySQL]]