本文转自:
http://blog.vontall.cn/read.php?16
[p align=center]
CREATE[/p]
简单插入复制内容到剪贴板
代码:
/* initialize Propel, etc. */
$author = new Author();
$author->setFirstName("Jack");
$author->setLastName("London");
$author->save();关联行插入复制内容到剪贴板
代码:
/* initialize Propel, etc. */
// 1) Create an Author (row of 'author' table)
include_once 'bookstore/Author.php';
$author = new Author();
$author->setFirstName("Leo");
$author->setLastName("Tolstoy");
// note: we don't save this yet
// 2) Create a Publisher (row of 'publisher' table)
include_once 'bookstore/Publisher.php';
$pub = new Publisher();
$pub->setName("Viking Press");
// note: we don't save this yet
// 3) Create a Book (row of 'book' table)
include_once 'bookstore/Book.php';
$book = new Book();
$book->setTitle("War & Peace");
$book->setIsbn("0140444173");
$book->setPublisher($pub);
$book->setAuthor($author);
$book->save(); // saves all 3 objects![p align=center]
RETRIEVE[/p]
从主键获取
获得一条:
复制内容到剪贴板
代码:
$firstBook = BookPeer::retrieveByPK(1);
// now $firstBook is a Book object, or NULL if no match was found.获得多条:
复制内容到剪贴板
代码:
$myObject = MultiColPKExamplePeer::retrieveByPK(1,2);获得一组:
复制内容到剪贴板
代码:
$selectedBooks = BookPeer::retrieveByPKs(array(1,2,3,4,5,6,7));
// $selectedBooks is an array of Book objects数据库查询
简单查询:
复制内容到剪贴板
代码:
$c = new Criteria();
$c->add(AuthorPeer::FIRST_NAME, "Karl");
$c->add(AuthorPeer::LAST_NAME, "Marx", Criteria::NOT_EQUAL);
$authors = AuthorPeer::doSelect($c);相当于
复制内容到剪贴板
代码:
SELECT * FROM author WHERE author.FIRST_NAME = 'Karl' AND author.LAST_NAME <> 'Marx';复制内容到剪贴板
代码:
$c = new Criteria();
$c->add(AuthorPeer::LAST_NAME, array("Tolstoy", "Dostoevsky", "Bakhtin"), Criteria::IN);
$authors = AuthorPeer::doSelect($c);
// $authors contains array of Author objects相当于
复制内容到剪贴板
代码:
SELECT ... FROM author WHERE author.LAST_NAME IN ('Tolstoy', 'Dostoevsky', 'Bakhtin');复杂的逻辑查询(AND/OR):
复制内容到剪贴板
代码:
$c = new Criteria();
$cton1 = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leo");
$cton2 = $c->getNewCriterion(AuthorPeer::LAST_NAME, array("Tolstoy", "Dostoevsky", "Bakhtin"), Criteria::IN);
// combine them
$cton1->addOr($cton2);
// add to Criteria
$c->add($cton1);相当于
复制内容到剪贴板
代码:
SELECT ... FROM author WHERE (author.FIRST_NAME = 'Leo' OR author.LAST_NAME IN ('Tolstoy', 'Dostoevsky', 'Bakhtin'));复制内容到剪贴板
代码:
$c = new Criteria();
$cton1 = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leo");
$cton2 = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Karl");
// combine them
$cton1->addOr($cton2);
// add to Criteria
$c->add($cton1);或者
复制内容到剪贴板
代码:
$c = new Criteria();
$c->add(AuthorPeer::FIRST_NAME, "Leo");
$c->addOr(AuthorPeer::FIRST_NAME, "Karl");直接使用
SQL语句:
复制内容到剪贴板
代码:
$con = Propel::getConnection(DATABASE_NAME);
$sql = "SELECT books.* FROM books WHERE NOT EXISTS (SELECT id FROM review WHERE book_id = book.id)";
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
$books = BookPeer::populateObjects($rs);[p align=center]
UPDATE[/p]
单表:复制内容到剪贴板
代码:
// 1) Fetch an object by primary key
$myBook = BookPeer::retrieveByPK(1);
// 2) update the values & save() it.
$myBook ->setTitle("War & Peace");
$myBook->save();关联表:复制内容到剪贴板
代码:
/* initialize Propel, etc. */
// 1) retrieve an Author
$author = AuthorPeer::retrieveByPK(1);
// 2) retrieve a Book
$book = BookPeer::retrieveByPK(1);
// 3) now blindly set $author as the author for $book!
$book->setAuthor($author);
$book->save();[p align=center]
DELETE[/p]
以键删除:复制内容到剪贴板
代码:
BookPeer::doDelete(1);以类对象删除:复制内容到剪贴板
代码:
$book = BookPeer::retrieveByPK(1);
BookPeer::doDelete($book);使用对象删除:复制内容到剪贴板
代码:
$book = BookPeer::retrieveByPK(1);
$book->delete();
// (and now you must remember that you can no longer use the $book object)[
本帖最后由 gegeu 于 2007-11-8 14:42 编辑 ]