📢 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]] | ||