PHPショッピングカートを作る事になったので、商品をMYSQLでする事にした。
商品点数が少ないならテキストファイル読み込んでもいいんだけど、動きが重くなってきたのね。
まだまだ経験不足の私はMYSQLを前から覚えなきゃと思いつつ先延ばししていたため、触った事すらなかったので、いい機会だと一念発起した。
データベース自体がはじめてなので戸惑いながら進める。
データベースって、まずデータベースがあってその中にテーブルがあるらしい、まぁ単純にエクセルのファイルがデータベースでその中のワークシートがテーブルって事だ。だからテーブルはいくつも作れる。
とりあえずデータベースを作成。んでテーブルを作る。
データベースの作成はすべてWEBMINのMySQLサーバーの設定画面から行なった。
適当な名前で新規にデータベースを作成。するとデータベースのアイコンが表示される。そいつをクリックして中を覗く。当然カラだ。
そこで新規にテーブルも作成。
テーブルはカラの状態じゃ作成できないみたい。
とりあえず商品番号、商品名、サイズ、価格の項目をそれぞれフィールド名にnumber,name,size,priceとしてデータの種類はすべてテキストで作成。
これでテーブルが出来た。
続いて、商品リストをテーブルに入れていくんだが、ここからまたお勉強。
MySQLへの命令はクエリとよばれる。
クエリを送信するとMySQLサーバーから返答がくる仕組みらしい。
WEBMINにはこのクエリを送信する画面もあった。
テーブルのリストが表示されている画面の右下に「SQLを実行」というボタンがそれだ。
この画面のテキストエリアにクエリを打ち込んで「実行」をするとクエリが送信される。
試しに一つ商品を登録する。
INSERT INTO my_table(number,name,size,price) VALUES('001','靴','25cm','12,800') で実行。
どうやら追加されたようだ。
一覧を表示するのクエリは SELECT * from my_table で実行。
するとデータに追加されている。ちょっとうれし~^^
しかし何十点もある商品でこんな作業続けていたら時間の無駄だ。
じつはテキストファイルを読み込めるみたい。
このクエリ実行画面のタブに「Import text file」ってのがあるじゃな~い。
とりあえずそこから読み込むことに挑戦。
まず読み込むファイルを指定する。
リストはサーバーにアップしてあるからそれを指定。
インポートするテーブルもさっき作ったテーブルを指定。
最初にテーブルのデータをしますかをはい。さっき打ったのが心残りだが;
同一の列を無視しますかをはい。よくわからん;
CSVのファイル形式は「,」で区切ってるから、CSV with quotesにチェック。
んで実行!
あっという間に読み込まれ、SELECTで確認。
・・・
??????????????????がたくさん並んでる;
明らかに文字コードがあっていないな;
日本語がすべて文字化けしてる。
MySQLの設定画面でMySQL System Variablesを確認すると、「character-set~」の項目が「latin」になってるぞ;
なぜラテン?
いろいろネットで調べるとこの問題でみんな困ってるらしい。
対策がありました。
MySQLサーバーのエンコードとクライアントの文字コードを合わせてればいい。
まぁ当たり前の事だけどね;
その設定は、
/ect/mysql/my.cnf 内の [mysqld] の項目に以下を追加。
default-character-set = utf8
skip-character-client-handshake
んでMySQL再起動!
もう一度ファイルを読み込んでみる。
・・・
無事読み込めた~。
んでPHPでテキストファイルで読み込んでいたページをMySQLに変えてみたら早い早いw
こらいいかも。
商品点数が少ないならテキストファイル読み込んでもいいんだけど、動きが重くなってきたのね。
まだまだ経験不足の私はMYSQLを前から覚えなきゃと思いつつ先延ばししていたため、触った事すらなかったので、いい機会だと一念発起した。
データベース自体がはじめてなので戸惑いながら進める。
データベースって、まずデータベースがあってその中にテーブルがあるらしい、まぁ単純にエクセルのファイルがデータベースでその中のワークシートがテーブルって事だ。だからテーブルはいくつも作れる。
とりあえずデータベースを作成。んでテーブルを作る。
データベースの作成はすべてWEBMINのMySQLサーバーの設定画面から行なった。
適当な名前で新規にデータベースを作成。するとデータベースのアイコンが表示される。そいつをクリックして中を覗く。当然カラだ。
そこで新規にテーブルも作成。
テーブルはカラの状態じゃ作成できないみたい。
とりあえず商品番号、商品名、サイズ、価格の項目をそれぞれフィールド名にnumber,name,size,priceとしてデータの種類はすべてテキストで作成。
これでテーブルが出来た。
続いて、商品リストをテーブルに入れていくんだが、ここからまたお勉強。
MySQLへの命令はクエリとよばれる。
クエリを送信するとMySQLサーバーから返答がくる仕組みらしい。
WEBMINにはこのクエリを送信する画面もあった。
テーブルのリストが表示されている画面の右下に「SQLを実行」というボタンがそれだ。
この画面のテキストエリアにクエリを打ち込んで「実行」をするとクエリが送信される。
試しに一つ商品を登録する。
INSERT INTO my_table(number,name,size,price) VALUES('001','靴','25cm','12,800') で実行。
どうやら追加されたようだ。
一覧を表示するのクエリは SELECT * from my_table で実行。
するとデータに追加されている。ちょっとうれし~^^
しかし何十点もある商品でこんな作業続けていたら時間の無駄だ。
じつはテキストファイルを読み込めるみたい。
このクエリ実行画面のタブに「Import text file」ってのがあるじゃな~い。
とりあえずそこから読み込むことに挑戦。
まず読み込むファイルを指定する。
リストはサーバーにアップしてあるからそれを指定。
インポートするテーブルもさっき作ったテーブルを指定。
最初にテーブルのデータをしますかをはい。さっき打ったのが心残りだが;
同一の列を無視しますかをはい。よくわからん;
CSVのファイル形式は「,」で区切ってるから、CSV with quotesにチェック。
んで実行!
あっという間に読み込まれ、SELECTで確認。
・・・
??????????????????がたくさん並んでる;
明らかに文字コードがあっていないな;
日本語がすべて文字化けしてる。
MySQLの設定画面でMySQL System Variablesを確認すると、「character-set~」の項目が「latin」になってるぞ;
なぜラテン?
いろいろネットで調べるとこの問題でみんな困ってるらしい。
対策がありました。
MySQLサーバーのエンコードとクライアントの文字コードを合わせてればいい。
まぁ当たり前の事だけどね;
その設定は、
/ect/mysql/my.cnf 内の [mysqld] の項目に以下を追加。
default-character-set = utf8
skip-character-client-handshake
んでMySQL再起動!
もう一度ファイルを読み込んでみる。
・・・
無事読み込めた~。
んでPHPでテキストファイルで読み込んでいたページをMySQLに変えてみたら早い早いw
こらいいかも。