開発メモ,主に補足by子連れ親父プログラマー

2011-01-25

OSXのMacPortsでphpのバージョンが5.3.5になり、なにもかもおかしくなった件

前の記事を見たら2010/3/18ってなってたからおよそ一年近くほったらかしになっていたことになるが。
1年前に自宅のOSXの環境にMacPortsでphpを入れて、その時は5.3.2だったんだが、
それで昨日そいつを更新しようと思い立ち、
sudo port upgrade installed
とやったが最後、とんでもなく延々と待たされた挙げ句に
 php5 @5.3.2_0+apache2+macosx+mysql5+pear+sockets+sqlite
 php5 @5.3.5_0+apache2 (active)
と2つのphp5が存在している状態になり、もう訳が分からない(涙)。
なんなんすか、これ。
phpのバージョンを5.3.2から5.3.5にするんだったら、
 php5 @5.3.5_0+apache2+macosx+mysql5+pear+sockets+sqlite
こうなるのが普通じゃないか?!
おかしい、これは絶対おかしい。
ということで
sudo port uninstall -f php5 @5.3.5_0+apache2
とやって消してみた。
消してからふと、そういえばmbstringが使えなかったような気がしたナーと思ったので
ついうっかり、
sudo port install php5-mbstring
とやってしまった。すると、
 php5 @5.3.2_0+apache2+macosx+mysql5+pear+sockets+sqlite
 php5 @5.3.5_0+apache2 (active)
げげーっつまたしても5.3.5が復活している!!
さすがにここまでやって気がついた。
恐らくこれは5.3.2と5.3.5とでは、もう、違うってことだ。
これからはもう絶対に
php5 @5.3.5_0+apache2+macosx+mysql5+pear+sockets+sqlite
こういう風にはならないってことだ。
結果、
php5 @5.3.5_0+apache2 (active)
php5-mbstring @5.3.5_0 (active)
php5-mysql @5.3.5_0+mysqlnd (active)
こういう風になる。
ついでに泣けるのがこのmbstring入れる時に出るメッセージ
Your php.ini contains a line that will prevent php5-mbstring
and other PHP extensions from working. To fix this,
edit /opt/local/etc/php5/php.ini and delete this line:

extension_dir = "./"
この行を消せってのは
extension_dir = "./"
のことを指している(笑)。

2011-01-18

MySQLで、ログイン用のメールアドレスなんかはバイナリー属性にしてテーブルを作る

なんかなー、デフォルトで大文字小文字区別しないってことが問題なんじゃないの?
って気はするけどなー。
普通にこういうテーブルを作る。
CREATE TABLE samples (
  id INT,
  email VARCHAR(255)
);

emailは大文字でも小文字でもヒットする。
バイナリー属性を付ける。
CREATE TABLE samples (
  id INT,
  email VARCHAR(255) binary
);
emailは大文字は大文字、小文字は小文字でヒットする。
show で見るとこんなになってる。

CREATE TABLE `samples` (
  `id` int(11) default NULL,
  `email` varchar(255) character set utf8 collate utf8_bin default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

ううむ。。。

このブログを検索

Powered by Blogger.

ラベル

php (17) jQuery (13) OSX (10) MySQL (8) Javascript (7) Postgres (7) port (7) apache (6) Java (3) Smarty (2) html (2) pear (2) FCKEditor (1) XAMPP (1) css (1) git (1) perl (1) ruby (1)

Facebookバナー