簡単なPHPスクリプトを作成しよう
GAE+PHPの動作確認として、簡単なスクリプトを作成します。
URLにアクセスすると、GAE上に格納されているデータをSQL4G経由で取得し、その内容を表示するだけのものです。
以下のソースをファイル名「hello.php」として作成して、(projectRoot)/warに配置します。
<html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <title>Hello</title> </head> <body> <h1>こんにちは! PHP on GAE with SQL4G </h1> <?php // PEAR::DB モジュールをinclude include $_SERVER["DOCUMENT_ROOT"]."/phplibs/inc.php"; include "DB.php"; // データベース作成スクリプトをinclude include "createInstance.php"; // SQL4Gへ接続 phptypeは SQL4G になります。 $dsn = array('phptype' => 'SQL4G', 'database' => 'DB4', 'user' => 'sa', 'password' => 'sa'); $db = DB::connect($dsn); // SQL4G接続エラーチェック if (PEAR::isError($db)) { die($db->getMessage()); } // クエリー実行 $ret = $db->query("SELECT * FROM NAME;"); // クエリーエラーチェック if (PEAR::isError($ret)) { die($ret->getMessage()); } // 実行結果を表示 print('No Name Dept'.'<br>'); while ($ret->fetchInto($row,DB_FETCHMODE_ASSOC)) { print($row["NO"] .' '. $row["NAME"] .' '. $row["DEPT"].'<br>'); } // SQL4Gへの接続を切断 $db->disconnect(); ?> </body> </html>
このスクリプトは、Pear::DBをはじめとするデータアクセスコンポーネントによるデータアクセス手法をご存じな方なら、すぐに理解できるでしょう。いままでのPear::DBを使用したデータ取得とまったく同一の方法でGAE上のデータを取得、表示しています。
また、GAE上でスクリプトを動かすための特別なメソッドなども一切なく、シンプルなPHPスクリプトであることも特徴の1つといえます。
なお、今回の動作確認ではPHPスクリプトのみで実行を行うため、Smartyを使用しません。Smartyを使用したアプリケーションについては次回説明します。
データベース作成スクリプト「createInstance.php」を作成して、(projectRoot)/warに配置します。このスクリプトは、SQL4Gのデータベースの存在を確認して、データベースが存在しない場合、データベース、テーブルおよびそのデータを自動的に作成します。
<?php // Java - PHP 連携 import jp.littlesoft.sql4g.*; try{ // データベース存在チェック new GAdministrator("DB4", "sa", "sa", false); } catch (Exception $e2){ // データベースが存在しない場合、データベースとテーブル及びデータを作成します new GAdministrator("DB4", "sa", "sa", true); $dsn = array('phptype' => 'SQL4G', 'database' => 'DB4', 'user' => 'sa', 'password' => 'sa'); $db = DB::connect($dsn); $ret = $db->query("CREATE TABLE EMPLOYEES ( NO INTEGER NOT NULL, NAME VARCHAR(255) NOT NULL, DEPT VARCHAR(255) NOT NULL );"); $ret = $db->query("INSERT INTO EMPLOYEES (NO, NAME, DEPT) VALUES (1, 'ながお', '開発部');"); $ret = $db->query("INSERT INTO EMPLOYEES (NO, NAME, DEPT) VALUES (2, 'はぎわら', '技術部');"); $ret = $db->query("INSERT INTO EMPLOYEES (NO, NAME, DEPT) VALUES (3, 'なかごし', '教育部');"); $db->disconnect(); } ?>
このスクリプトでは、pear::DBモジュールを使用して、SQL4Gデータベースに対してデータの追加を行っています。pear::DBとの連携についても次回説明します。
動作確認用コードをGAE上にアップロードしよう
ここまでに設定した内容と作成したスクリプトを、GAE環境にアップロードしましょう。
アップロード手順は、至って簡単です。プロジェクトの[google】−[Deploy Project to Google App Engine]を選択して表示されるダイアログに、GAEアカウント取得時に入力した情報を設定して、Deployボタンをクリックすれば、自動的にアップロードされます。
デプロイ後、http://GAEアプリのID/hello.phpにアクセスすると、先ほどの画面が表示されるはずです。このスクリプトを実行することにより、SQL4Gを使用してGAE上に存在するデータの取得を行い、SQLを実行してその結果を表示するという、一連の動作を行えます。
Railsアプリケーション編は、第3回「SQL4GでGAE+Railsを体験しよう」で説明しています。併せてご覧ください。
3/3 |
Index | |
SQL4GでGAE+PHPを体験しよう | |
Page1 GAE+PHP環境のセットアップ SQL4GとPHP4Gモジュールの配置 |
|
Page2 php.iniの配置とxmlの編集 Pearモジュールの配置 SQL4GAdminの起動を確認しよう |
|
Page3 簡単なPHPスクリプトを作成しよう 動作確認用コードをGAE上にアップロードしよう |
GAE+PHP/Rubyで拓く新世界 |
Coding Edgeお勧め記事 |
いまさらアルゴリズムを学ぶ意味 コーディングに役立つ! アルゴリズムの基本(1) コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう |
|
Zope 3の魅力に迫る Zope 3とは何ぞや?(1) Pythonで書かれたWebアプリケーションフレームワーク「Zope 3」。ほかのソフトウェアとは一体何が違っているのか? |
|
貧弱環境プログラミングのススメ 柴田 淳のコーディング天国 高性能なIT機器に囲まれた環境でコンピュータの動作原理に触れることは可能だろうか。貧弱なPC上にビットマップの直線をどうやって引く? |
|
Haskellプログラミングの楽しみ方 のんびりHaskell(1) 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう |
|
ちょっと変わったLisp入門 Gaucheでメタプログラミング(1) Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう |
|
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|