データベースアクセスクラスをWEB上から自動生成
2005年10月31日-
スポンサード リンク
PHP Object Generator(POG)
データベースの構造(スキーマ)を定義するだけでSQL文とDAOクラスをWEB上で自動生成できる。
データベースと連携したアプリを作る際は便利そう。
PHP4,5用のどちらのコードを生成するかを選択できる。
実際に生成してみました(サンプル)
データベースの構造(スキーマ)を定義するだけでSQL文とDAOクラスをWEB上で自動生成できる。
データベースと連携したアプリを作る際は便利そう。
PHP4,5用のどちらのコードを生成するかを選択できる。
実際に生成してみました(サンプル)
<?
// POG 1.0 rev22 (http://www.phpobjectgenerator.com)
// Feel free to use the code for personal & commercial purposes. (Offered under the BSD license)
// This SQL query will create the table to store your object.
/*
CREATE TABLE `test` (
`testid` int(11) auto_increment,
`a` VARCHAR(255),
`b` VARCHAR(255),
`c` VARCHAR(255),
`d` VARCHAR(255),
`e` VARCHAR(255), PRIMARY KEY (`testid`));
*/
class test
{
var $testId;
var $a;
var $b;
var $c;
var $d;
var $e;
function test($a='', $b='', $c='', $d='', $e='')
{
$this->a = $a;
$this->b = $b;
$this->c = $c;
$this->d = $d;
$this->e = $e;
}
/**
* Gets object from database
* @param integer $testId
* @return object $test
*/
function Get($testId)
{
$Database = new DatabaseConnection();
$query = "select * from `test` where `testid`='".$testId."' LIMIT 1";
$Database->Query($query);
$this->testId = $Database->Result(0,"testid");
$this->a = $Database->Unescape($Database->Result(0,"a"));
$this->b = $Database->Unescape($Database->Result(0,"b"));
$this->c = $Database->Unescape($Database->Result(0,"c"));
$this->d = $Database->Unescape($Database->Result(0,"d"));
$this->e = $Database->Unescape($Database->Result(0,"e"));
return $this;
}
/**
* Returns a sorted array of objects that match given conditions
* @param string $field
* @param string $comparator
* @param string $fieldValue
* @param string $sortBy
* @param boolean $ascending
* @return array $testList
*/
function GettestList($field,$comparator,$fieldValue,$sortBy="",$ascending=true)
{
$testList = Array();
$Database = new DatabaseConnection();
$query = "select testid from test where `".$field."`".$comparator."'".$Database->Escape($fieldValue)."'";
$Database->Query($query);
for ($i=0; $i < $Database->Rows(); $i++)
{
$test = new test();
$test->Get($Database->Result($i,"testid"));
$testList[] = $test;
}
switch(strtolower($sortBy))
{
case strtolower("a"):
usort($testList, array("test","ComparetestBya"));
if (!$ascending)
{
$testList = array_reverse($testList);
}
break;
case strtolower("b"):
usort($testList, array("test","ComparetestByb"));
if (!$ascending)
{
$testList = array_reverse($testList);
}
break;
case strtolower("c"):
usort($testList, array("test","ComparetestByc"));
if (!$ascending)
{
$testList = array_reverse($testList);
}
break;
case strtolower("d"):
usort($testList, array("test","ComparetestByd"));
if (!$ascending)
{
$testList = array_reverse($testList);
}
break;
case strtolower("e"):
usort($testList, array("test","ComparetestBye"));
if (!$ascending)
{
$testList = array_reverse($testList);
}
break;
case "":
default:
break;
}
return $testList;
}
/**
* Saves the object to the database
* @return nothing
*/
function Save()
{
$Database = new DatabaseConnection();
$query = "select * from `test` where `testid`='".$this->testId."' LIMIT 1";
$Database->Query($query);
if ($Database->Rows() > 0)
{
$query = "update `test` set
`a`='".$Database->Escape($this->a)."',
`b`='".$Database->Escape($this->b)."',
`c`='".$Database->Escape($this->c)."',
`d`='".$Database->Escape($this->d)."',
`e`='".$Database->Escape($this->e)."' where `testid`='".$this->testId."'";
}
else
{
$query = "insert into `test` (`a`, `b`, `c`, `d`, `e` ) values (
'".$Database->Escape($this->a)."',
'".$Database->Escape($this->b)."',
'".$Database->Escape($this->c)."',
'".$Database->Escape($this->d)."',
'".$Database->Escape($this->e)."' )";
}
$Database->InsertOrUpdate($query);
if ($this->testId == "")
{
$this->testId = $Database->GetCurrentId();
}
}
/**
* Clones the object and saves it to the database
* @return nothing
*/
function SaveNew()
{
$this->testId='';
$this->Save();
}
/**
* Deletes the object from the database
* @return nothing
*/
function Delete()
{
$Database = new DatabaseConnection();
$query = "delete from `test` where `testid`='".$this->testId."'";
$Database->Query($query);
}
/**
* private function to sort an array of test by a
* @return +1 if attribute1 > attribute2, 0 if attribute1==attribute2 and -1 if attribute1 < attribute2
*/
function ComparetestBya($test1, $test2)
{
return strcmp(strtolower($test1->a), strtolower($test2->a));
}
/**
* private function to sort an array of test by b
* @return +1 if attribute1 > attribute2, 0 if attribute1==attribute2 and -1 if attribute1 < attribute2
*/
function ComparetestByb($test1, $test2)
{
return strcmp(strtolower($test1->b), strtolower($test2->b));
}
/**
* private function to sort an array of test by c
* @return +1 if attribute1 > attribute2, 0 if attribute1==attribute2 and -1 if attribute1 < attribute2
*/
function ComparetestByc($test1, $test2)
{
return strcmp(strtolower($test1->c), strtolower($test2->c));
}
/**
* private function to sort an array of test by d
* @return +1 if attribute1 > attribute2, 0 if attribute1==attribute2 and -1 if attribute1 < attribute2
*/
function ComparetestByd($test1, $test2)
{
return strcmp(strtolower($test1->d), strtolower($test2->d));
}
/**
* private function to sort an array of test by e
* @return +1 if attribute1 > attribute2, 0 if attribute1==attribute2 and -1 if attribute1 < attribute2
*/
function ComparetestBye($test1, $test2)
{
return strcmp(strtolower($test1->e), strtolower($test2->e));
}
}
?>
powered by phpコード変換機.
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 筆で書いたようなカナ書体「筆竹仮名B」
- 無料・商用利用可な丸文字ピクセルフォント「マルミーニャM」
- スペースコブラ風フォント
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 過去のエントリ