`
xieye
  • 浏览: 822863 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php数据库操作类库doctrine使用全攻略

    博客分类:
  • PHP
阅读更多
首先composer安装

{
    "require": {
        "doctrine/dbal":"2.5.12"
    }
}


表结构如下
CREATE TABLE `test_databases` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `db_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '库名',
  `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '测试用户id',
  `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `updated_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `test_databases_db_name_user_id_unique` (`db_name`,`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 


示例代码:
<?php
require ("../vendor/autoload.php");

$config = new \Doctrine\DBAL\Configuration();
//..
$connectionParams = array(
		'dbname' => 'test1',
		'user' => 'root',
		'password' => 'root',
		'host' => 'localhost',
		'driver' => 'pdo_mysql',
                'charset'=>'UTF8',
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);

echo "<h1>fetchAll(获取全部), fetchAssoc(获取行), fetchColumn(获取单个)示例</h1>";
$users = $conn->fetchAll('SELECT * FROM test_databases limit 2');
var_dump($users);
echo "<hr>";
$sql = 'SELECT * FROM test_databases';
$result = $conn->fetchAssoc($sql);

var_dump($result);
echo "<hr>";
$sql = 'SELECT db_name FROM test_databases limit 3';
$result = $conn->fetchColumn($sql);

var_dump($result);
echo "<hr>";
// ,没有单独的取某列的值。好遗憾。
$sql = 'SELECT db_name FROM test_databases order by id asc limit 3';
$result = $conn->fetchAll($sql);

var_dump($result);
echo "<hr>";

echo "<h1>迭代获取全部,适用于数据量超大的场合</h1>";
//迭代获取全部,适用于数据量超大的场合
$stat = $conn->query('SELECT * FROM test_databases limit 2');
while ($row= $stat->fetch()) {
	var_dump($row);
}

//var_dump($users);

echo "<hr>";
// 参数绑定
echo "<h1>动态参数绑定,也可以使用另外几个fetch函数</h1>";
$sql = 'SELECT * FROM test_databases WHERE db_name = ? limit 2';
$statement = $conn->executeQuery($sql, array('db1'));
$result = $statement->fetchAll();
var_dump($result);
echo "<hr>";

echo "<h1>查询构造器使用示例,也可以使用另外几个fetch函数</h1>";
// 下面是查询构造器使用示例
$queryBuilder = $conn->createQueryBuilder();
$queryBuilder
	->select('id', 'db_name')
	->from('test_databases')
	->where("db_name = :db_name")
	->setParameter('db_name', 'db1');

$sql = $queryBuilder->getSQL();
var_dump($sql);
echo "<hr>";
$result = $queryBuilder->execute()->fetchAll(); //返回 executeQuery对象。

var_dump($result);


增删改
$conn->insert('user', array('username' => 'jwage'));
$conn->lastInsertId();// 得到最后插入的行

$conn->delete('user', array('id' => 1));
$conn->update('user', array('username' => 'jwage'), array('id' => 1));



浏览器显示


  • 大小: 54.8 KB
分享到:
评论

相关推荐

    20个非常有用的PHP类库

    3. **Propel**:一个基于PHP5的对象关系映射框架,提供了一种灵活的方式来管理和操作数据库数据。 4. **Outlet**:另一个ORM实现,为PHP5提供了一个简单的数据持久化解决方案。 #### PDF生成类库 1. **FPDF**:一...

    Doctrine Cache:一个使用的php缓存类库

    Doctrine Cache是一个轻量级且易于使用的组件,它为PHP开发人员提供了丰富的API,用于管理和操作各种类型的缓存。通过这个库,开发者可以快速实现对数据的缓存,并且能够灵活地选择不同的存储引擎,以适应项目需求...

    PHP轻量级数据库框架PHP更简单高效的数据库操作方式

    在IT行业中,PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域有着深厚的根基。当我们谈论“PHP轻量级数据库框架”时,通常是指那些设计简洁、性能高效且易于集成到项目中的数据库访问库。这类框架使得PHP...

    20个php常用类库

    根据给定的信息,我们可以整理出20个常用的PHP类库,并对其中部分类库进行详细介绍。这些类库在Web开发中十分常见,可以帮助开发者高效地完成项目。 ### 1. GD - **简介**:GD 是一个用于动态图像创建的 PHP 扩展,...

    Doctrine Cache:一个使用的php缓存类库.zip

    **正文** ...通过理解并应用Doctrine Cache,开发者可以有效地优化PHP应用的性能,减少数据库的读取次数,提高整体系统响应速度。在实际项目中,根据需求选择适合的缓存策略和配置,能显著提升用户体验。

    PHP网站开发常用类库

    在PHP网站开发中,使用合适的类库可以极大地提高开发效率,优化代码结构,并提供更强大的功能。本资源包"PHP网站开发常用类库"包含了几个关键领域的实用工具,包括图片处理、分页、字符串处理和文件上传。接下来,...

    php一些比较常用类库及例子

    - **Doctrine**: Doctrine 是 PHP 的一个流行 ORM,允许开发者使用面向对象的方式操作数据库。例如: ```php use Doctrine\ORM\EntityManager; use App\Entity\User; $entityManager = EntityManager::...

    Doctrine ORM for PHP

    ORM 全称 Object-Relational Mapping, 是一种程序设计技术,它使得程序员可以使用面向对象的方法来访问和操作关系数据库。ORM 技术可以将对象模型转换为关系数据库模型,从而实现数据的持久化存储。 什么是 ...

    php数据库操作大全源代码_bpqagq_php_源码.zip

    8. **数据库优化**:如何使用索引、避免全表扫描、合理设计数据库结构以提升性能。 9. **数据库设计模式**:如主键、外键、关系模型等数据库设计基础。 10. **面向对象的数据库操作**:使用PHP类和对象来封装...

    php-paginator:php分页处理类库

    7. **优化与性能**:虽然`php-paginator`本身并不直接处理数据库查询,但建议结合ORM(如Doctrine)或SQL的LIMIT/OFFSET子句来优化数据获取,避免一次性加载大量数据,从而提高性能。 8. **错误处理和测试**:在...

    doctrine1.0.0参考手册

    【内容概要】:Doctrine是PHP中的一款流行的对象关系映射(ORM)框架,它为开发者提供了在PHP中操作数据库的强大工具,将SQL数据库与面向对象编程相结合。本手册详细介绍了如何开始使用Doctrine,包括其安装、配置、...

    20个PHP常用类库

    11. **Doctrine** - 一个高性能的ORM框架,要求PHP 5.2.3及以上版本,它提供了一套强大的数据库抽象层(DBAL),使得开发者可以使用面向对象的方式操作数据库,而无需关心底层SQL语句的编写。 12. **Propel** - 另...

    php数据库访问封装类集合

    例如,如果项目同时涉及MySQL和其他类型的数据库,可以考虑使用支持多种数据库的ORM(对象关系映射)框架,如PDO(PHP Data Objects)或Doctrine。 总结来说,“php数据库访问封装类集合”是一个包含多种数据库访问...

    Laravel开发-laravel-doctrine

    Doctrine ORM 是 PHP 的一个流行 ORM 解决方案,它允许开发者通过面向对象的方式处理数据库操作,比如定义实体类、建立关联关系、执行 CRUD 操作等。Doctrine 提供了 QueryBuilder 和 DQL(Doctrine 查询语言)等...

    doctrine-orm

    1. Doctrine2ORM是PHP的ORM框架,其目的是将PHP代码中的对象与数据库中的关系表进行映射,让开发者可以通过面向对象的方式来操作数据库。 2. Doctrine2项目由多个组件构成,其中Doctrine ORM是核心,此外还包括...

    doctrine的demo

    Doctrine是PHP中广泛应用的ORM之一,它为PHP开发者提供了强大的数据库抽象层,简化了数据库操作。 描述"一个简单的数据库对象关系映射框架doctrine的使用demo"表明这是一个用于展示如何在实际项目中运用Doctrine的...

    PHP数据库入浸PHP数据库入浸

    PHP数据库入浸,也被称为SQL注入,是一种常见的网络安全攻击手段,主要针对使用PHP语言开发并连接数据库的应用程序。攻击者通过输入恶意的SQL代码到应用程序的输入字段,来操纵或窃取数据库中的敏感信息。本文将深入...

Global site tag (gtag.js) - Google Analytics