MySQLのrootユーザのパスワードを変更する

MySQLのrootのパスワードの変更方法をメモ。
ちなみにrootに限らず他のユーザのIDも同様に変更可能。

まずはコマンドラインなどでMySQLへログインします。
そのために、まずはMySQLがあるフォルダに移動します。パスが通っている場合は不要です。
私はxampp環境で制作していますのでC:\xampp\mysql\binのフォルダに移動してからログインしました。

cd /d C:\xampp\mysql\bin
mysql -u root -p

このコマンドを実行後、現在のパスワードを入力してログインします。

ログイン後は以下のコマンドを実行します。

mysql> SET PASSWORD FOR root@localhost=PASSWORD('sousaku');
Query OK, 0 rows affected

rootの部分は変更したいユーザを、localhostの部分はホスト名を、sousakuの部分は変更したいパスワードを書きます。
入力したら実行しQuery OKとでれば変更完了。もう変わってます。

戻すときも同様の手順で可能です。
以外とさっくり出来てしまいます。

PHPのforeach構文による配列のアクセス順

PHPの場合はforeach構文で配列にアクセスする場合、
要素の追加順にアクセスされます。

$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';

foreach ($letters as $letter) {
    print $letter;
}

これで出力するとABDCとプリントされます。
数値キー順に順番にアクセスされるわけではないということです。

なので数値順にアクセスすることを保証したい場合
for構文を利用すること。

PHP5.3でHTMLPurifier4.2を使おうと思ったらNOTICEエラーが発生。

悪意あるHTMLコードをきれいにするHTMLPurifierを試してみました。
試したPHPコードは以下の通り。

// HTMLPurifierを生成する
$dirty_str = 'hogehoge';

$config = HTMLPurifier_Config::createDefault();
$config->set('Core', 'Encoding', 'UTF-8');
$config->set('Core', 'Language', 'ja'); 
$config->set('Attr', 'AllowedFrameTargets', array('_blank','_self'));

$hp = new HTMLPurifier($config);
//危険なHTMLタグを無効化
$clean_str = $hp->purify( $dirty_str );

他の参考サイトにならってconfigオブジェクトに設定を格納しようと思ったら以下のようなエラーが出ました。

Notice: Using deprecated API: use $config->set('Core.Encoding', ...) instead on line 8 in file ... in Config.php on line 564
Notice: Using deprecated API: use $config->set('Core.Language', ...) instead on line 9 in file ... in Config.php on line 564
Notice: Using deprecated API: use $config->set('Attr.AllowedFrameTargets', ...) instead on line 10 in file ... in Config.php on line 564

NOTICEエラーなのでerror_reporting(0);とか書いておけばもちろん非表示に出来ますがそれだと気持ち悪いので修正しました。
setメソッドに渡す値を引数で連結せずに.(ドット)で連結するとエラーが消えるみたいです。
修正したコードは以下の通りです。

// HTMLPurifierを生成する
$dirty_str = 'hogehoge';

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('Core.Language', 'ja'); 
$config->set('Attr.AllowedFrameTargets', array('_blank','_self'));

$hp = new HTMLPurifier($config);
//危険なHTMLタグを無効化
$clean_str = $hp->purify( $dirty_str );