ラベル php の投稿を表示しています。 すべての投稿を表示
ラベル php の投稿を表示しています。 すべての投稿を表示

2012年7月5日木曜日

Mac OSX 10.7 lion serverにmysql

phpとくればmysqlでしょ、と思ったらMac OSX 10.7 Lionからpostgresに変わったようで、使うにはインストールが必要らしい。
ということでmysqlをインストールしてみる。


mysqlインストール

まずはMySQLのサイトから最新版をダウンロード


「MySQL Community Server」からMac用のアーカイブをダウンロードします。
今回はDMG-Archiveをダウンロードしました。

Lion用のMySQLは無いようですので、10.6用を使ってみます。


インストールは「mysql-5-5.24-osx10.6-x86_64_pkg」をダブルクリックしてインストーラの指示通りにしていくだけで、特に入力することも無く、あっさり終了。

あとは同パッケージ内の残りのファイル
自動起動させるために「MySQLStartupItem.pkg」をダブルクリックしてインストール。
システム環境設定にアイコンを表示させるのに「MySQL.prefPane」をダブルクリックして登録

あとは開いたMySQLパネルで「Start MySQL Server」ボタンを押して起動完了!


これでインストール作業は一旦終了。

次は端末から簡単に操作ができるようにmysqlへパスを通します。
これで
/usr/local/mysql/bin/mysql -u root -p
という長ったらしいコマンドを
mysql -u root -p
にしてくれます。


vi ~/.bash_profile
で ホームディレクトリの./bash_profileファイルを開き(無い場合は新規作成)
export PATH=$PATH:/usr/local/mysql/bin
と書いて「:wq!」コマンドで保存・終了
source ~/.bash_profile
でファイルを再読み込みします。

うまく行けば、端末で

mma:~ hoge$ mysql -v   ←こんな風に打てば

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 147
Server version: 5.5.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Reading history-file /Users/hir/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>   ←こんな風に表示されます。


my.cnfの編集(文字コードをutf8に)


Finderで「移動」→「フォルダへ移動」で
/etc/local/mysql/support-files
へ移動し、「my-○○○.cnf」ファイルの中から自分の環境に合わせたファイルを/etcにコピーして「my.cnf」とリネームします。(ワタシはとりあえずmy-small.cnfを選択)

my.cnfをエディタで開き
[mysqld]の最下行に
skip-character-set-client-handshake
character-set-server=utf8
の2行を追加

[mysqldump]と[mysql]に
default-character-set=utf8

をそれぞれ追加します。

念のため「システム環境設定」→「mysql」でサーバを再起動します。


rootパスワードの設定とログインテスト

ターミナルで
mma:~ hoge$mysqladmin -u root password パスワード
でパスワードを設定し
mma:~ hoge$mysql -u root -p
で先ほど設定したパスワードでログインできるか確認します。


PHPから接続できるようにphp.iniを設定


MacOSX10.5あたりから、UNIXsocketの場所が変わっているようなのでphp.iniファイルを書き換えます。

まずはUNIXsocketの場所を確認

mysql -u root -p
でログイン、プロンプトで
「status」と入力します。

ズラズラっと表示された情報の中からUNIX socket:を探して内容を覚えておきます。

次に/etc内のphp.iniファイルを編集します。

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=/var/mysql/mysql.sock

を

pdo_mysql.default_socket=/tmp/mysql.sock

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysql.default-socket
mysql.default_socket = /var/mysql/mysql.sock

を

mysql.default_socket = /tmp/mysql.sock


; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket = /var/mysql/mysql.sock

を

mysqli.default_socket = /tmp/mysql.sock

に変更します。

これでいけるはず。
最後にWEBサーバ(Apache)を再起動して動作確認。



2012年3月29日木曜日

phpでcsvを扱う(読み込み)

CSVファイルを開く

構文
fopen(ファイル名,モード)

よく使うモード

  • 'r' ・・・ 読み取り(ポインタはファイルの先頭)
  • 'w' ・・・ 書き込み(ファイルがない場合は新規で作成される。ポインタはファイルの先頭)
  • 'a' ・・・ 追記( ファイルがない場合は新規で作成される。ポインタはファイルの末尾)
ファイルポインタ

イメージとしては「テキストエディタ上のカーソルの位置」のようなもの


例:tmpディレクトリ内の「test.csv」を読み込みモードで開く

$handle = fopen('/tmp/test.csv','r');

$handleは「ファイルハンドル」といい、上記の例では「/tmp/test.csv」というファイルの事を指します。
読み込んだcsvファイルを操作するためにはファイルハンドルを操作するのが手順となります。


読み込み

構文
fgetcsv(ファイルハンドル)

1行読み込みを行い、配列を作ります。

よく使う構文


作られた配列から1行読み込み、値を取り出してHTMLのテーブルに出力



$line=fgetcsv($handle)
for( $i = 0; $i < count($line); $i++){
  echo '<TR>';
    echo '<TD>' . $line[$i] . '</TD>'
  echo '</TR>';
}




あとは行数分while等でループさせればOK


while(「真」となる条件)

/* 繰り返し処理 */



お試しあれ!


詳しい説明

PHPマニュアル~fgetcsv~