PHPから SET NAMES ujis はやらない

http://d.hatena.ne.jp/yoshihi6/20070726/1185414880

    $db = &ADONewConnection( 'mysql' );
    $db->Connect(
        (DB名とかパスワードとか)
    );
    $db->execute( '/*!40101 SET NAMES ujis */' );

⇒ mysql3〜5で動く!

ということを書きましたが、よくない方法でした。極力やらないほうがいいです・・・

このあたりが理由⇒http://blog.ohgaki.net/index.php/yohgaki/2007/08/22/set_namesa_mcb_asc



文字コードの指定はmysql3〜5、PHP4〜5で動くコードはあきらめて、

  • mysql_set_charset() をつかう(PHP5.2.3以降)
  • mysqli_set_charset(), mysqli->set_charset() をつかう(PHP5.0.5以降)

のどちらかにしたほうがいいです。

※mysql3は、切り捨てる。(というか別途コードを書けばいい)


adodbだと、PHP5対応版のmysqli接続に SetCharSetメソッドが実装されてたのでこれを使うのが見栄えがよいかもです。

    $db = &ADONewConnection( 'mysqli' );
    $db->Connect(
        (DB名とかパスワードとか)
    );
    $db->SetCharSet( 'ujis' );

adodb mysqli の接続について気になりだしてきたのでまた今度書きます。