hetemlでPHP7.1とMySQL5.6の連携
ヘテムルの公式サイトに上がっている方法では,PHPとMySQLの連携が出来なかった.
heteml.jp
公式サイトの方法では,PHPのバージョンが4または5の時のみ有効で,PHP7の場合では別の方法を使用する必要があります.
というか,mysql_connect(PHP: mysql_connect - Manual)自体があまり推奨じゃなくなってきているので,PHP5以上の場合は下記の方法に変更した方が無難です.
hetemlのソースコードをPHP7版に変更をすると,
mysqli_connect(PHP: mysqli_connect - Manual)の場合
<?php // MySQL に接続し、データベースを選択します。 $conn = mysqli_connect('HOSTNAME', 'USERNAME', 'PASSWORD'); // SQL クエリを実行します。 $res = mysqli_query('SELECT * from table_heteml'); // 結果を出力します。 while ($row = mysqli_fetch_array($res, MYSQL_NUM)) { echo $row[0] . "\n"; } // 結果セットを開放し、接続を閉じます。 mysqli_free_result($res); mysqli_close($conn); ?>
PDO(PHP: MySQL (PDO) - Manual)の場合
<?php // MySQL に接続し、データベースを選択します。 $conn = new PDO('mysql:host=****.phy.heteml.lan;dbname=DBNAME;charser=utf8', "USERNAME", "PASSWORD"); // SQL クエリを実行します。 $res = $db->query('SELECT * from table_heteml'); // 結果を出力します。 while ($row = $res->fetch()) { echo $row[0] . "\n"; } ?>
また,データベースに接続を行う時の各IDは,
host --> データベースのサーバー名 (mysql*.heteml.jp または mysql00*.phy.heteml.lan) dbname --> データベース作成時のユーザ名 (hetemlの場合は最初にアンダーバーが入る) USERNAME --> dbnameと同じ PASSWORD --> データベースへログインする時のパスワード (hetemlにログインする時とは別)
また,hetemlの場合,ログイン後トップページ右側にある「PHP設定」を変更します.
PHP7.1にもモジュール版とCGI版がありますが,php.iniを変更できるのはCGI版なので,CGI版に変更します.
下記に自分の設定を表示しておきます.
そのほかの設定にある,「display_erros」は「Off」にしておくと,PHPでのエラーが発生した場合に画面に表示されなくなります.本番環境ではOffにしておく事をオススメします.
画面に表示しない代わりにログを出しておきたいので,「log_errors」は「On」に,「error_reporting」は「E_ALL & ~E_NOTICE」を選択しておくと良いです.