Blog Archives

  • サイト更新:電卓相性チェッカー はコメントを受け付けていません。
    thumbnail

    サイト更新:電卓相性チェッカー

    「電卓相性チェッカー」を更新した! ※更新内容  ・相性にランクとアドバイスメッセージ???を付けた ★電卓相 […]

    ★この続きを読みたい >>

  • 「mysqlnd」を使ったPHPによるMySQL接続方法 はコメントを受け付けていません。
    thumbnail

    「mysqlnd」を使ったPHPによるMySQL接続方法

    前回の記事にも書いたが、PHPを5.5にアップデートすると、
    「php-mysql」が「php-mysqlnd」に置き換わるため、
    以前のMySQLで作られていたユーザーのパスワードが古い形式のままの場合、
    DBへ接続できない現象
    が発生する。

    ※yumによるアップデート

    php-mysqlnd  i686  5.5.0-0.28.beta4.el6.remi  remi-test  248 k
      replacing  php-mysql.i686 5.4.14-1.el6.remi
    

    DB(mysql-userテーブル)を見てみると、
    rootのパスワードは新形式の長いタイプのパスワードだが、
    その他は短い古い形式のパスワードだった。

    ★ユーザーパスワードの確認 (DB:mysql / table:user)
    image

    ★旧形式と新形式のパスワードの違い
    image image

    よってパスワードを新形式へアップデートする事で解決できる!
     ※DB変更後は、必ずMySQLのサービスを再起動!

    SQL:

    1. SET PASSWORD FOR ‘対象のユーザー名’@‘対象のホスト名’ = PASSWORD(‘対象となるユーザのパスワード’);

    ※上記SQLでOKだが直接updateしても変更できる、というか上の方がスマートだと知らなかった^^

    SQL:

    1. UPDATE
    2.     `mysql`.`user`
    3. SET
    4.     `Password` = PASSWORD (‘対象となるユーザのパスワード’)
    5.     WHERE
    6.         `user`.`Host` = ‘対象のホスト名’ –(ユーザー名がユニークの場合は必要なし)
    7.     AND `user`.`User` = ‘対象のユーザー名’
    8. ;

    ★この続きを読みたい >>

  • PHPからMySQLに接続できない:mysqlnd はコメントを受け付けていません。
    thumbnail

    PHPからMySQLに接続できない:mysqlnd

    remi-testからPHP5.5にアップデートすると、PHPからMySQLのデータベースに接続できない事態が発生した。

    理由は以下の通り。

     ・「php-mysql」が廃止されて、「php-mysqlnd」に置き換わった
     ・「php-mysqlnd」でmysql_connect()系関数を使用した際、MySQLの古いパスワードフォーマット(16バイト)を使うとDBに接続できない

    ソース:PHP:下位互換性のない変更点

    よって対処方法としては、

     1.「php-mysqlnd」を使わないで「php-mysql」を使う
      ※今後の事を考えれば「php-mysqlnd」を使ったほうがいいかもしれない・・・

     2.MySQLのパスワードを設定し直す

    SET PASSWORD FOR 'username'@'hostname' = PASSWORD('パスワード');
    

     ※ただし、「my.cnf」に

    old_passwords=1
    

      とある場合は旧パスワードが有効になっているので、

    old_passwords=0
    

      と無効にする必要あり。設定が有効の場合に旧パスワードで設定するには

    SET PASSWORD FOR 'username'@'hostname' = OLD_PASSWORD('パスワード');
    

      で設定すればOK。

    ★この続きを読みたい >>

  • PHP5.5系のアップデートでMySQLへ接続できず!!? はコメントを受け付けていません。
    thumbnail

    PHP5.5系のアップデートでMySQLへ接続できず!!?

    タイトル通り、先程PHPのバージョンを「remi-test」リポジトリから5.5系へアップデートしようとしたら、
    データベース接続確立エラー」が表示されてしまった・・・

    ちなみにWordPress以外で動いているPHP系サイトもMySQL接続エラー発生。
    ログを見ても特に怪しいものを発見できなかった。
    ただ、phpMyAdminは動作していた。。

    思うに、

    Replaced:
      php-mysql.i686 0:5.4.13-1.el6.remi 
    
    ---
    Package php-mysql-5.4.14-1.el6.remi.i686 is obsoleted by php-mysqlnd-5.5.0-0.25.beta3.el6.remi.i686 which is already installed.
    

    この辺が怪しい・・・

    php-mysql」が廃止されて、「php-mysqlnd」に置き換わったとの事。

    この「php-mysqlnd」を調べると、

    ※抜粋:PHP:下位互換性のない変更点

    新しい mysqlnd ライブラリは、MySQL 4.1 用の41バイトの新しいパスワードフォーマットを使用します。 古い16バイトのパスワードを使うと、 mysql_connect() 系の関数は次のようなエラーメッセージを生成します。"mysqlnd cannot connect to MySQL 4.1+ using old authentication"
    

    とある。

    すなわち!

    古いパスワードフォーマットだったからMySQLに接続できなくなった!!

    というわけだ。

    取り急ぎパッケージのダウングレードしたが、
    迂闊なアップデートはやっぱり恐ろしいね~

    ※解決方法PHPからMySQLに接続できない:mysqlnd

    スポンサードリンク

    ★この続きを読みたい >>

  • PHPによるCSVファイルの読み込み はコメントを受け付けていません。
    thumbnail

    PHPによるCSVファイルの読み込み

    PHPでCSVファイルを読み込む
     ※「fgetcsv」関数の第3引数にてセパレート文字変更可

    ★読み込みサンプルCSV(sample.csv)

    111,222,333
    AAA,BBB,CCC
    

    ★PHP

    PHP:

    1. // 読み込むCSVパス
    2. $read_csv_path = ‘./sample.csv’;
    3.  
    4. // CSVファイルを読み込む
    5. $fp = fopen($read_csv_path,‘r’);
    6. $count = 0;
    7. while($arr = fgetcsv($fp, 1000, ‘,’)){
    8.     $csv[$count] = $arr;
    9.     $count++;
    10. }
    11.  
    12. // 読み込んだCSVをテスト出力
    13. echo ‘<pre>’;
    14. var_dump($csv);
    15. echo ‘</pre>’;

    ★出力結果

    array(2) {
      [0]=>
      array(3) {
        [0]=>
        string(3) "111"
        [1]=>
        string(3) "222"
        [2]=>
        string(3) "333"
      }
      [1]=>
      array(3) {
        [0]=>
        string(3) "AAA"
        [1]=>
        string(3) "BBB"
        [2]=>
        string(3) "CCC"
      }
    }
    

    ★この続きを読みたい >>

  • Conditions by timestamp by PHP はコメントを受け付けていません。
    thumbnail

    Conditions by timestamp by PHP

    PHP:

    1. // Specifies the file path where PHP wants to check the timestamp
    2. $file_path = ‘/var/www/html/’;
    3.  
    4. if($dir = opendir($file_path)){
    5.     while(($file = readdir($dir)) !== false){
    6.         if($file != ‘.’ && $file != ‘..’){
    7.             // Get timestamp
    8.             $get_unix = filemtime($file);
    9.                
    10.             // Specify the time range(condition)
    11.             if(strtotime(‘2013-02-01 22:30:00’) <= $get_unix && $get_unix <= strtotime(‘2013-02-01 22:40:00’)){
    12.                 echo $file.‘ is 「2013/02/01 22:30:00」 ~ 「2013/02/01 22:40:00」[‘.date(‘Y/m/d H:i:s’,$get_unix).‘]<br />’;
    13.             }else{
    14.                 echo $file.‘is not「2013/02/01 22:30:00」 ~ 「2013/02/01 22:40:00」[‘.date(‘Y/m/d H:i:s’,$get_unix).‘]<br />’;
    15.             }
    16.         }
    17.     }
    18. }

    ★この続きを読みたい >>

  • PHPによる時間範囲を指定した条件 はコメントを受け付けていません。
    thumbnail

    PHPによる時間範囲を指定した条件

    ファイルのタイムスタンプを取得して
    その取得ファイルの中から指定の日時を抽出したいなど、
    PHPによる時間範囲指定したいケースがあるかと思います。
     ※SQLならbetweenで簡単ですけどね~

    PHP:

    1. // タイムスタンプを調べたいファイルパスを指定
    2. $file_path = ‘/var/www/html/’;
    3.  
    4. if($dir = opendir($file_path)){
    5.     while(($file = readdir($dir)) !== false){
    6.         if($file != ‘.’ && $file != ‘..’){
    7.             // タイムスタンプ取得
    8.             $get_unix = filemtime($file);
    9.                
    10.             // 時間範囲を指定
    11.             if(strtotime(‘2013-02-01 22:30:00’) <= $get_unix && $get_unix <= strtotime(‘2013-02-01 22:40:00’)){
    12.                 echo $file.‘は「2013/02/01 22:30:00」 ~ 「2013/02/01 22:40:00」 の間のファイルです[‘.date(‘Y/m/d H:i:s’,$get_unix).‘]<br />’;
    13.             }else{
    14.                 echo $file.‘は「2013/02/01 22:30:00」 ~ 「2013/02/01 22:40:00」 の間のファイルではありません[‘.date(‘Y/m/d H:i:s’,$get_unix).‘]<br />’;
    15.             }
    16.         }
    17.     }
    18. }

    ★参考URL
     ・[本を買わずに解決するWeb制作の小技] phpで日付・時間を比較する方法

    ★この続きを読みたい >>

  • PHP Simple HTML DOM Parser はコメントを受け付けていません。
    thumbnail

    PHP Simple HTML DOM Parser

    PHPのスクレイピング処理に、よく自分は「PHP Simple HTML DOM Parser」を使っている!
    これは便利だと思うなー

    ★公式URL
     ・[PHP Simple HTML DOM Parser] PHP Simple HTML DOM Parser
    ★参考URL
     ・[Crystal-Cre…

    ★この続きを読みたい >>