先日、PHPのMySQL関数が5.5で非推奨になり、将来のバージョン(PHP6とか?)で使えなくなるという話が出ました
PHP 5.5 で mysql 拡張モジュールが非推奨になり、E_DEPRECATED エラーが表示されるようになりました。将来の PHP のバージョンで削除されます。 mysql 拡張モジュールに依存する CMS を使ってサイトを運用している場合、将来、運用サーバーに導入されている PHP のバージョンの切り替えに備えて、 mysqli もしくは PDO に対応した CMS のバージョンへのアップグレードするか、別の CMS やウェブサービスに切り替える必要があります。
PHP 5.5 で mysql 拡張モジュールが非推奨になり、将来において WordPress を筆頭にさまざまな CMS のアップグレード作業が必要になります – Sarabande.jp
なんだかこの記事への反応を見ているとPHP5.5からMySQLに接続できなくなると勘違いしている人がいるみたい&未だにPHPからMySQLに接続と検索すると該当する関数を使っている人が多いようなのでmysqliでの接続例を書いておこうと思います
※そもそも、PHP5.3から関数自体非推奨になっているのでPHP5.5にしたら接続できなくなったとかはありえないと思うんですよね
必要要件
PHP バージョン 5.0.0 以降
yum等でインストールされている普通のPHPであればmysqliに対応しています
PHP: インストール手順 – Manual
phpinfoでmysqliに対応しているか確認してみてください
ソースコード
mysql関数とほぼ同じように手続き型で接続することが可能です
~~~
~~~
ソースコード2
オブジェクト型でかつプリペアドステートメントを使えるようになったのもmysqliの特徴です
~~~
prepare(“SELECT District FROM City WHERE Name=?”)) {
/* マーカにパラメータをバインドします */
$stmt->bind_param(“s”, $city);
/* クエリを実行します */
$stmt->execute();
/* 結果変数をバインドします */
$stmt->bind_result($district);
/* 値を取得します */
$stmt->fetch();
printf(“%s is in district %s\n”, $city, $district);
/* ステートメントを閉じます */
$stmt->close();
}
/* 接続を閉じます */
$mysqli->close();
?>
~~~
こちらの書き方が推奨されています
まとめ
未来のPHPで使えなくなるのはPHP: Mysql – Manual。
今のPHPではまだ使えますがメンテナンスされなくなりますのでなにか脆弱性が発見されても対応されません
今後はPHP: Mysqli – Manualか、PHP: MySQL (PDO) – Manualを使用しましょう
コメント