2011年3月28日月曜日

MySQLでCSVをインポートする

MySQLでCSVをインポートするコマンド

LOAD DATA LOCAL INFILE
    "[インポートするファイル名]"
INTO TABLE
    [テーブル名]
FIELDS
    TERMINATED BY '[区切り文字]'
    ENCLOSED BY '[カラムの囲み文字]'
    ESCAPED BY '[エスケープ文字]'
    LINES
TERMINATED BY '[改行文字]'
;

で、取り込んだけど文字化け発生。
下記でDBの文字コード確認

show variables like 'character_set%';
character_set_databaseがlatin1になっているので、
alter database [DB名] character set utf8;
で、文字コードをUTF-8に変更。

無事、インポート完了。

2011年3月24日木曜日

symfonyを学習中 Vol.02

symfonyにデータベースの設定をしてみる。

基本的には、教えていただいたサイトの
http://www.symfony.gr.jp/docs/symfony1-docs/jobeet/ja/
を参考に実施。ORMはDoctrineを使用。
手順はバラバラにやってます。

Configを設定
symfony configure:database "mysql:host=[サーバーアドレス];dbname=[DB名]" [ユーザー名] [DBのパスワード]
DBを作成
symfony doctrine:build-db
おお!DBが出来てる!すごいすごい! テーブルスキーマの作成をする。 config/doctrine/schema.ymlを手動で編集する。 今回は簡単なユーザーマスタを作成。 テーブルは下記のような感じ ・ユーザーID ・パスワード ・ユーザー名 ・削除フラグ ・登録日時 ・更新日時 config/doctrine/schema.ymlの中身
MstUser: tableName: MstUser options: charset: utf8 columns: user_id: type: string(255) primary: true password: type: string(255) notnull: true user_name: type: string(255) notnull: true delete_flg: type: char(1) default: 0 notnull: true actAs: Timestampable: { }
下記部分が、登録日と更新日をsymfonyが管理してくれるらしい。 (自動でカラムが追加される。) --------------------------------- actAs: Timestampable: { } --------------------------------- 下記を入れないと、UTF8にならなかった。 (他に方法がありそうな感じ) --------------------------------- options: charset: utf8 --------------------------------- モデルを作成
symfony doctrine:build --model
下記、ファイルが作成される。
lib/model/doctrine/MstUser.class.php lib/model/doctrine/MstUserTable.class.php lib/model/doctrine/base/BaseMstUser.class.php
SQLを作成
symfony doctrine:build --sql
下記、ファイルが作成される。
data/sql/schema.sql
中身を見てみると
CREATE TABLE MstUser (user_id VARCHAR(255), password VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, delete_flg CHAR(1) DEFAULT '0' NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(user_id)) DEFAULT CHARACTER SET utf8 ENGINE = INNODB;
CREATE文が作成されている。 また、created_at/updated_atも定義されている。 SQLを実行してテーブルを作成
symfony doctrine:insert-sql

なんだか便利だけど、なれるまでかかりそう。

2011年3月22日火曜日

symfonyを学習中 Vol.01

下記を参考にsymfonyの環境づくり
http://symfony.xrea.jp/1.2/book/index.html
プロジェクトを作成
コマンドが1.4(?)から変わってるらしい。
symfony generate:project [プロジェクト名]
アプリケーション作成
php symfony generate:app [アプリ名]
サイトを参考にVirtualHostの設定 モジュール作成
php symfony generate:module [アプリ名] [モジュール名]
サイト確認
http://localhost/[アプリ名]_dev.php/[モジュール名]/index
状況によって環境を変える場合
web/[アプリ名]_dev.phpをコピー ファイル名をweb/[アプリ名]_[環境名].phpに変更 [アプリ名]_[環境名].phpの中身変更
$configuration = ProjectConfiguration::getApplicationConfiguration('[アプリ名]', '[環境名]', true);
apps/[アプリ名]/config/app.ymlを変更
[環境名]: mail: webmaster: test@testsite.com contact: test@testsite.com

symfonyって、もうVer2が出るのねん。

2011年1月9日日曜日

さくらVPS設定

勉強がてら、さくらVPSを借りてみた。

通常のyumだと最新版が入らないので、いろいろ調べてやってみた。

php mysql のインストール
# 移動します。
cd /etc/yum.repos.d
# epelとremiをwgetします。
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# インストールします。
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
# mysqlをインストール (さくらVPSはCentOsのx86_64なのでx86_64)
yum --enablerepo=remi,epel install mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64
# サーバ起動時に自動でmysqlが起動するようにします。(再インストールするとoffになってるので)
/sbin/chkconfig --list mysqld /sbin/chkconfig mysqld on /sbin/chkconfig --list mysqld
# mysqlを起動
/etc/init.d/mysqld start
# PHPをインストールします。
yum --enablerepo=remi,epel install php yum --enablerepo=remi,epel install php-mysql php-mbstring php-xml php-cli php-common php-devel php-gd php-mcrypt php-pdo php-eaccelerator
# バージョンの確認
php -v mysql -V
apacheの再起動 # webサーバの再起動
/etc/init.d/httpd restart


とりあえず、これでOKなはず。