NotORM(PHP的ORM框架)示例代码_PHP教程
程序员文章站
2024-01-07 16:26:58
...
在烈火下载栏目,我们发布了NotORM,这是一个完全免费的 PHP 库,用来简化和数据库的交互。最有特色的功能是处理表关联关系非常简单。另外 NotORM 的性能非常的高,设置高过内置的驱动。
$pdo = new PDO("mysql:dbname=software");
$db = new NotORM($pdo);
echo "$application[title]\n"; // print application title
}
->select("id, title")
->where("web LIKE ?", "http://%")
->order("title")
->limit(10)
;
foreach ($applications as $id => $application) {
echo "$application[title]\n";
}
$application = $db->application("title = ?", "Adminer")->fetch();
foreach ($application->application_tag() as $application_tag) { // get all tags of $application
echo $application_tag->tag["name"] . "\n"; // print the tag name
}
foreach ($db->application()->order("author.name") as $application) {
echo $application->author["name"] . ": $application[title]\n";
}
foreach ($db->application() as $application) {
// get count of each application's tags
echo $application->application_tag()->count("*") . "\n";
}
$connection = new PDO("mysql:dbname=software");
$software = new NotORM($connection);
foreach ($software->application()->order("title") as $application) { // get all applications ordered by title
echo "$application[title]\n"; // print application title
echo $application->author["name"] . "\n"; // print name of the application author
foreach ($application->application_tag() as $application_tag) { // get all tags of $application
echo $application_tag->tag["name"] . "\n"; // print the tag name
}
}
?>
下边来看一些NotORM的示例代码:
连接数据库:
Copy to Clipboard引用的内容:[www.bkjia.com] include "NotORM.php";$pdo = new PDO("mysql:dbname=software");
$db = new NotORM($pdo);
读取数据:
Copy to Clipboard引用的内容:[www.bkjia.com] foreach ($db->application() as $application) { // get all applicationsecho "$application[title]\n"; // print application title
}
条件查询:
Copy to Clipboard引用的内容:[www.bkjia.com] $applications = $db->application()->select("id, title")
->where("web LIKE ?", "http://%")
->order("title")
->limit(10)
;
foreach ($applications as $id => $application) {
echo "$application[title]\n";
}
读取结果:
Copy to Clipboard引用的内容:[www.bkjia.com] $application = $db->application[1]; // get by primary key$application = $db->application("title = ?", "Adminer")->fetch();
处理表关联:
Copy to Clipboard引用的内容:[www.bkjia.com] echo $application->author["name"] . "\n"; // get name of the application authorforeach ($application->application_tag() as $application_tag) { // get all tags of $application
echo $application_tag->tag["name"] . "\n"; // print the tag name
}
JOIN联合查询:
Copy to Clipboard引用的内容:[www.bkjia.com] // get all applications ordered by author's nameforeach ($db->application()->order("author.name") as $application) {
echo $application->author["name"] . ": $application[title]\n";
}
结果集分组:
Copy to Clipboard引用的内容:[www.bkjia.com] echo $db->application()->max("id"); // get maximum IDforeach ($db->application() as $application) {
// get count of each application's tags
echo $application->application_tag()->count("*") . "\n";
}
完整实例:
Copy to Clipboard引用的内容:[www.bkjia.com] include "NotORM.php";$connection = new PDO("mysql:dbname=software");
$software = new NotORM($connection);
foreach ($software->application()->order("title") as $application) { // get all applications ordered by title
echo "$application[title]\n"; // print application title
echo $application->author["name"] . "\n"; // print name of the application author
foreach ($application->application_tag() as $application_tag) { // get all tags of $application
echo $application_tag->tag["name"] . "\n"; // print the tag name
}
}
?>