doctrine2 mysql_Hello Doctrine2

I. 初始化环境

2. include_path设定

解压缩后将DoctrineORM-2.0.0目录下的Doctrine 放到include_path涉及的目录,放好后目录结构如下:

10b2f7c6c750683346ae5428b7c87baf.png

3. 建立项目布局

将tools\sandbox目录下的index.php复制到自己的项目目录下作为doctrine2的开端是一个比较好的实践。复制过来需要修改该文件的两处:

1).将

require '../../lib/Doctrine/Common/ClassLoader.php';

修改为

require 'Doctrine/Common/ClassLoader.php';

(因为前面已经将doctrine2的包放到了include_path涉及的目录)

2).将下面代码

$user = new User;

$address = new Address;

注释掉

4. 运行Index.php

php index.php 输出 Hello World!

II. 数据库操作

1. 修改数据库连接

index.php原有一处

$connectionOptions = array(

'driver' => 'pdo_sqlite',

'path' => 'database.sqlite'

);默认链接sqlite数据库,但是如果你的服务器没有enable它,或者向连接到mysql数据,请修改为:

$connectionOptions = array(

'dbname' => 'mydb',

'user' => 'root',

'password' => '',

'host' => '127.0.0.1',

'driver' => 'pdo_mysql',

);

(具体参数根据你的服务器配置做相应修改)

2. 建立实体文件到index.php的Entities目录下

这里以User为例:

namespace Entities;

/** @Entity @Table(name="users") */

class User {

/**

* @Id @Column(type="integer")

* @GeneratedValue(strategy="AUTO")

*/

private $user_id;

/** @Column(type="string", length=50) */

private $name;

private $address;

public function getUserId(){

return $this->user_id;

}

public function getName(){

return $this->name;

}

public function setName($name){

$this->name = $name;

}

}

3. 建立数据库schema

CREATE TABLE `users` (

`name` varchar(32) default NULL,

`user_id` int(11) NOT NULL auto_increment,

PRIMARY KEY (`user_id`)

);

4. 修改index.php.

1). 在index.php头部use前面建立的实体类

use Entities\User; //实际默认已经引用了该类.

2) 在index.php末尾增加如下代码

$user = new User;

$user->setName('Allen');

$em->persist($user);

$em->flush();

5. 重新运行index.php

查看数据库,看到如下结果

mysql> select * from users;

+-------+---------+

| name | user_id |

+-------+---------+

| Allen | 1 |

+-------+---------+

1 row in set (0.00 sec)

附件是项目代码,请参考

7e29aa752fafd380858be92f445ef341.png

大小: 3.4 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-05-09 11:50

浏览 4055

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值