「 PHP 」一覧

MySQL を 5.5.0 以降にアップグレードしてください。

phpMyAdminを4.2.3にアップデートしたら「MySQL を 5.5.0 以降にアップグレードしてください。」と赤文字でエラー表示がでた。

単なるバグフィックスバージョンだと思っていたら、システム要件が変更されたらしい。このバージョンからPHP5.3, MySQL5.5以降が必要

phpMyAdmin 4.2.3 is released

Welcome to phpMyAdmin 4.2.3, a bugfix version. Please note that this release enforces the minimum PHP (5.3) and MySQL (5.5) versions.
Posted by Marc Delisle 2014-06-08

phpMyAdmin / News: phpMyAdmin 4.2.3 is released

導入していたサーバーはまだMySQL5.1系だったので、phpMyAdmin 4.2.2に戻す事も考えたが、バグが残った状態のを使うのもあれなので、phpMyAdmin 4.1系の4.1.14まで戻した。

PHPでページの実行時間を取得

PHPなページの実行時間を計測するために下記のようなコードを使っているのだが、

<?php
$time_start = microtime(true);
?>

ページ表示部分

<?php
$time_end = microtime(true); 
echo "実行時間:" . number_format($time_end - $time_start , 5) . " sec";
?>

$time_start を毎回書くのが面倒。
request_once されるような config.php的なファイルに

define('START_TIME', microtime(true));

と定義しておくといいのかもしれないが、必要な時に関数一発で時間得られるようにしたかった。

で、こんな関数を作成。PHP5.4.0以降しか使えません

function getExectime()
{
    // 小数点以下5桁まで
    $t = number_format(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'] , 5);
    return "実行時間" . $t . " sec";
}

PHP5.4.0から $_SERVER[‘REQUEST_TIME_FLOAT’]変数が追加された。
これはリクエスト開始時のタイムスタンプをマイクロ秒精度で得られる変数。

PHP5.1からは$_SERVER[‘REQUEST_TIME’]変数というのがあったのだが、こっちはマイクロ秒までは見てくれないので1秒以内の処理などは計測できなかった。
PHP: $_SERVER – Manual

これで実行時間が欲しい時に echo getExectime(); するだけでよくなった。
もうPHPファイルの最初に $time_start 書かなくてもいい。らくちん

もちろん PHPファイル内での特定の処理(ループの前後とか)の時間を計測する場合は $_SERVER[‘REQUEST_TIME_FLOAT’]使っても意味がないので、そういう用途には 従来の$time_startと$time_endの差分計測を使う。
今回はページ表示の実行時間計測なので、$_SERVER[‘REQUEST_TIME_FLOAT’]使う方がより正確な値が得られるんじゃないかな?っていうお話。

違いはどの程度になるかというと
従来方式
  実行時間:0.00410 sec
$_SERVER変数方式
  実行時間:0.01483 sec

リクエスト開始から処理開始までの0.01秒弱が加算された感じ

そもそも測定範囲が違うので、過去に計測した実行時間と比較したい場合は従来方式を使わないとダメ。

CentOS6.4にMySQL5.6.12、PHP5.4.17を入れようとしてつまづく

ちょっと最近のバージョンで環境構築しようと
CentOS6.4にOracle版MySQL5.6.12を入れた後に、remiからPHP5.4.17を入れようした

[psychedelic@local ~]$ sudo yum install --enablerepo=remi php php-mbstring php-
mysql php-gd php-pear php-xml php-mcrypt pcre-devel php-devel

お約束的にいつも入れるパッケージ達をインストール。
と思ったら事前チェックでエラー ぐぬぬ

Transaction Check Error:
  file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.5.32-1.el6.remi.x86_64 conflicts with file from package MySQL-server-5.6.12-1.el6.x86_64
  file /usr/share/mysql/charsets/armscii8.xml from install of mysql-libs-5.5.32-1.el6.remi.x86_64 conflicts with file from package MySQL-server-5.6.12-1.el6.x86_64
  file /usr/share/mysql/charsets/ascii.xml from install of mysql-libs-5.5.32-1.el6.remi.x86_64 conflicts with file from package MySQL-server-5.6.12-1.el6.x86_64
  file /usr/share/mysql/charsets/cp1250.xml from install of mysql-libs-5.5.32-1.el6.remi.x86_64 conflicts with file from package MySQL-server-5.6.12-1.el6.x86_64
(以下略)

MySQL-shared-compat-5.6.12-1.el6.x86_64.rpm を事前にインストールしてるはずなんで
mysql-libs関連も置き換わってるはずなんだけど、、、

結局php-mysql ではなく php-mysqlndにすることで解消
いまいち理解できてないのだが、もうMySQL5.6からはphp-mysqlnd使えよっていう話なのだろうか

スポンサーリンク
レクタングル大 広告