【PHP】MySQLのデータベース操作

この記事では、PHPプログラムでMySQLのDB(データベース)を操作する方法とソースコードについて紹介します。

【MySQLとは】特徴

MySQLとは、世界中で一番使われているデータベースです。
機能が豊富で処理速度も速く、オラクル社により開発されています。

主な特徴
1 オープンソース
2 非商用なら無料で利用可能(商用は有料)
3 大規模データベース向き(Webサーバーでよく使われている)
4 マルチユーザ対応(複数同時利用が可能)
5 主な使用例:Yahoo、Google、WordPressなど

PHPでは、mysql関数を用いてMySQLのデータベースを操作できます。
※PHP7以降では、mysqli関数とmysqlクラスで操作可能

MySQL、PostgreSQL、SQLite、Oracle DBの比較
この記事では、メジャーなDBである「MySQL」「PostgreSQL」「SQLite」「Oracle DB」などの比較・違いについて紹介します。 ## MySQL MySQLとは、世界中で一番使われているデータベースです。 機能が豊富で処

PHPの基礎文法については下記事で解説しています。

【人気比較】PHP、Perl、Go、Rust、Node.js
PHP、Perl、Go、Rust、Node.jsの人気を比較してみました。

【phpMyAdmin】でデータベースの操作

データベースの作成

phpMyAdminを使うと、GUI操作でデータベースを作成できます。
MySQLのデータベースを構築する手順は以下の通りです。

XAMPPをインストールします。

②「XAMPP Control Panel」を起動します。

③「Apache」の左にある「Start」ボタンをクリックします。

④「MySQL」の左にある「Start」ボタンをクリックします。

⑤「Apache」と「MySQL」の背景色が緑色になっていることを確認します。

⑥インターネットに接続できるブラウザ(Chromeなど)を起動します。

⑦ブラウザのアドレスバーに以下のURLを打ち込んでアクセスします。


無効なURLです

⑧下画像のページにアクセスしたら、「言語」「ユーザ名」「パスワード」を入力して「実行」をクリックします。
※言語を日本語にすると、日本語表示にできます

⑨上部メニューから「データベース」タブを選択します。

⑩作成したいデータベースの名前を入力し、「作成」ボタンをクリックします。
※下画像の例ではデータベース名をsarvantにしています

⑪これでデータベースを作成できました。

【phpMyAdmin】MySQLのデータベース作成
XAMPPとphpMyAdminを用いて、MySQLのデータベースを作成する方法について紹介します。

テーブルの作成

MySQLのデータベースを構築する手順は以下の通りです。

①データベースを作成します。

②phpMyAdminにログインし、「データベース」タブから作成したデータベース名を選択します。
※画像例はデータベースsarvantを選択

③作成したい「テーブル名」と「カラム数(列の数)」を入力します。
そして、「実行」ボタンをクリックします。
※画像例は5列のテーブル「artoria」を作成

④これでテーブルを作成できました。
尚、この後に表示される画面で、作成したテーブルのカラム(列)に関する詳細設定もできます。

【詳細設定の内容】

・名前
・id
・データ型
・長さ/値

【phpMyAdmin】MySQLのテーブル作成
XAMPPとphpMyAdminを用いて、MySQLのテーブルを作成する方法について紹介します。

CSVのロード

①CSVファイルのデータを格納する「データベース」と「テーブル」を作成しておきます。

②左側メニューから「データベース名」→「テーブル名」→「インポート」タブを選択していきます。

④読み込むCSVファイルを選択します。

⑤読み込みの設定をします。
・フォーマット(CSV)
・文字コード(UTFなど、CSVファイルの文字コードに合わせる)
・ファイルフォーマット

今回は下記のCSVファイルを試しに読み込んでみます。

artoria,saver,11221,15150,5
artoria alter,saver,10248,11589,4
artoria lily,savar,7726,10623,4
artoria lancer,lancer,10995,15606,5
artoria lancer alter,lancer,9968,11761,4
artoria swimwear,archer,11276,14553,5
artoria santa alter,rider,9258,11286,4
mystery heroine x,assassin,11761,12696,5
mystery heroine x alter,berserker,11113,14175,5

⑥「実行」ボタンを選択します。
今回は読み込み設定はデフォルトで行いました。

⑦「表示」タブを選択すると、読み込んだCSVファイルのデータがテーブルに格納されているか確認できます。

429 Too Many Requests

日本語のCSVファイルをインポートすると文字化けする場合があります。
その場合、以下の操作手順でインポートすることで解決できる場合があります。

①CSVファイルのデータを格納するデータベーステーブルを作成しておきます。

②左側メニューから「データベース名」→「テーブル名」→「インポート」タブを選択していきます。

④読み込むCSVファイルを選択します。

※CSVファイルは改行コードをCR+LFに設定してUTF-8で保存

⑤読み込みの設定をします。(UTF-8の場合)

・フォーマット(CSV)
・文字コード(UTF-8)
・テーブルオプションで照合順序を全て「utf8_general_ci」に設定
※テーブルオプションは「操作」タブから設定できます

⑥「実行」ボタンを選択します。

⑦「表示」タブを選択すると、読み込んだCSVファイルのデータがテーブルに格納されているか確認できます。

https://algorithm.joho.info/programming/mysql/load-csv-xampp-phpmyadmin-japanese/

MySQLの管理者アカウント(root)には、フォルトでパスワードが設定されていません。
パスワード設定手順は以下の通りです。

①xampp-control.exeをダブルクリックして、XAMPPのコントロールパネルを開きます。

②「Apache」の左にある「Start」ボタンをクリックします。

③「MySQL」の左にある「Start」ボタンをクリックします。

④「Apache」と「MySQL」の背景色が緑色になっていることを確認します。

⑤「Shell」ボタンをクリックします。
以下のコマンドを入力します。

mysqladmin –user=ユーザ名 password ”パスワード”

(例)デフォルトの場合(ユーザ名:root、パスワード:無し→password)
mysqladmin –user=root password ”password”

⑥これでデータベースにパスワードが設定されます。
※例の場合だと、passwordというパスワードをrootユーザに対して設定

429 Too Many Requests

phpMyAdminの「特権」メニューやXAMPPのシェル等でrootユーザーのパスワードを設定した後、ログイン画面を開くと以下のエラーメッセージが表示される場合があります。

#1045 – Access denied for user ‘root’@’localhost’ (using password: NO)
mysqli_real_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: NO)
MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください。

これは、phpMyAdminの設定ファイル(config.inc.php)に、変更後のパスワードを設定していないことが原因です。

エラーの解決手順

①phpMyAdminのインストール先にある「config.inc.php」ファイルをテキストエディタで開きます。

②以下の箇所を編集します。
※変更後のパスワードを挿入します。

$cfg['Servers'][$i]['password'] = '変更後のパスワード';

③作業は以上です。
※エラーが解消されない場合は、ApacheやMySQLを再起動したりしてください。

【追記】
レンタルサーバーに設置したphpMyAdminの場合は、以下の箇所も編集する必要があります。

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
429 Too Many Requests

【PHP】MySQL DBの操作

DB接続

PHP7では、mysqli_connect関数でMySQLのデータベースに接続できます。
※PHP5では、mysql_connect関数を使います(引数は同じ)

【書式】

mysqli_connect([string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
引数 内容
username ユーザー名
password パスワード
new_link 同じ引数で2回関数を呼び出した際、接続でなくリンクIDを返す(この動作を変更して新規接続するようにする)
client_flags 圧縮プロトコルやSSL暗号化の設定

【返り値】
接続成功:MySQLリンクID
接続失敗:FALSE

サンプルプログラムのソースコードは下記の通りです。


サンプルプログラムの実行結果は下記の通りです。
(ユーザ名:root、パスワード:passwordのデータベースに接続)

DBに接続成功
【PHP】MySQLのDBに接続
この記事では、PHPプログラムでMySQLのDB(データベース)に接続する方法とソースコードについて紹介します。

DB切断

mysqli_close関数でMySQLのデータベースから切断できます。
※PHP5では、mysql_close関数を使います(引数は同じ)

【書式】

mysqli_close(link_identifier)
引数 内容
link_identifier 切断したいリンクID

【返り値】
切断成功:MySQLリンクID
切断失敗:FALSE

サンプルプログラムのソースコードは下記の通りです。


(ユーザ名:root、パスワード:passwordのデータベースに接続→切断)

DB接続成功
DB切断成功
【PHP】MySQLのDBから切断
この記事では、PHPプログラムでMySQLのDB(データベース)から切断する方法とソースコードについて紹介します。
【PHP】MySQLのDBに接続・切断
この記事では、PHPプログラムでMySQLのDB(データベース)に接続・切断する方法とソースコードについて紹介します。

データの取得

mysqli_query関数でMySQL(データベース)上でクエリを実行できます。
今回はこれを用いて、データベースのテーブルからデータ(値)を取り出します。
※PHPからSELECT文を実行してやります

【書式】

mysqli_query(object database, string cmd);
引数 内容
database データベースオブジェクト
cmd クエリの内容(MySQLコマンド)

■返り値
クエリの実行結果


【SELECT文】
SELECT カラム名 FROM テーブル名
※指定したテーブルのカラムにあるデータを抽出
※上記のサンプルプログラムでは、テーブル「artoria」のカラム「name」にあるデータを抽出
(ユーザ名:root、パスワード:password、データベース:sarvantに接続→値取得→切断)

DB接続成功
artoria
artoria alter
artoria lily
artoria lancer
artoria lancer alter
artoria swimwear
artoria santa alter
mystery heroine x
mystery heroine x alter
DB切断成功
【PHP】MySQLのDB・テーブルからデータを取得
この記事では、PHPプログラムでMySQLのDB(データベース)に接続し、テーブルのデータを取り出す方法とソースコードについて紹介します。

データベースのテーブルげデータ(値)を追加します。
※PHPからINSERT文を実行してやります

【書式】

mysqli_query(object database, string cmd)

;

引数 内容
database データベースオブジェクト
cmd クエリの内容(MySQLコマンド)

■返り値
クエリの実行結果


【INSERT文】
INSERT INTO テーブル名(カラム名) VALUES(データ)
※指定したテーブルのカラムへデータを追加
※上記のサンプルプログラムでは、テーブル「artoria」のカラム「name」にデータ「nero claudius」を追加
(ユーザ名:root、パスワード:password、データベース:sarvantに接続→データ追加→データ取得・表示→切断)

DB接続成功
artoria
artoria alter
artoria lily
artoria lancer
artoria lancer alter
artoria swimwear
artoria santa alter
mystery heroine x
mystery heroine x alter
nero claudius
DB切断成功

※nero claudiusが追加されています

【PHP】MySQLのDB・テーブルにデータ追加
この記事では、PHPプログラムでMySQLのDB(データベース)に接続し、テーブルへデータを追加する方法とソースコードについて紹介します。

データの更新

データベースのテーブルにあるデータ(値)を更新します。
※PHPからUPDATE文を実行してやります

【書式】

mysqli_query(object database, string cmd);
引数 内容
database データベースオブジェクト
cmd クエリの内容(MySQLコマンド)

■返り値
クエリの実行結果


【UPDATE文】
UPDATE テーブル名 SET カラム名 = 更新後の値 where name = 更新前の値;
※指定したテーブルのカラムにあるデータを更新
※上記のサンプルプログラムでは、テーブル「artoria」のカラム「name」にあるデータ「nero claudius」を「nero bride」に変更
(ユーザ名:root、パスワード:password、データベース:sarvantに接続→データ追加→データ取得・表示→切断)

DB接続成功
artoria
artoria alter
artoria lily
artoria lancer
artoria lancer alter
artoria swimwear
artoria santa alter
mystery heroine x
mystery heroine x alter
nero bride
DB切断成功

※nero claudiusがnero brideに変更されています

【PHP】MySQLのDBにあるデータ更新・変更
この記事では、PHPプログラムでMySQLのDB(データベース)に接続し、テーブル内のデータを更新(変更)する方法とソースコードについて紹介します。

データの削除

データベースのテーブルにあるデータ(値)を削除します。
※PHPからDELETE文を実行してやります

【書式】

mysqli_query(object database, string cmd);
引数 内容
database データベースオブジェクト
cmd クエリの内容(MySQLコマンド)

■返り値
クエリの実行結果


【DELETE文】
DELETE FROM テーブル名 WHERE カラム名 = 削除するデータ;
※指定したテーブルのカラムにあるデータを削除
※上記のサンプルプログラムでは、テーブル「artoria」のカラム「name」にあるデータ「nero claudius」を削除

【PHP】MySQLのDBにあるデータ削除
この記事では、PHPプログラムでMySQLのDB(データベース)に接続し、テーブル内のデータを削除する方法とソースコードについて紹介します。

DBに登録したデータの日本語が文字化けした場合、次の手順で文字コードの設定を見直します。

操作
1 PHPで文字コードをUTF-8に設定
2 Apacheで文字コードをUTF-8に設定
3 headerでUTF-8を指定
header(‘Content-Type: text/html; charset=UTF-8’)
4 PDOでUTF-8を指定
$db = new PDO(‘mysql:host=localhost;dbname=hogehoge;charset=utf8’, $USER, $PASSWORD);
【PHP/MySQL】日本語の文字化け対策
PHP/MySQLで日本語の文字化けが発生した場合の対策についてまとめました。
429 Too Many Requests

コメント