标签: database-abstraction

mysqli或PDO - 有什么优缺点?

在我们的位置,我们将使用mysqli和PDO分为准备语句和事务支持之类的东西.有些项目使用一个,另一个项目.我们很难有可能转移到另一个RDBMS.

我更喜欢PDO,因为它允许为预准备语句提供命名参数,据我所知,mysqli没有.

在我们整合项目时只使用一种方法,是否还有其他优点和缺点选择其中一种作为标准?

php mysql mysqli pdo database-abstraction

342
推荐指数
10
解决办法
13万
查看次数

迄今为止最好的PHP DAL(数据抽象层)

迄今为止在任何开源项目下开发的最佳PHP DAL(数据抽象层)是什么,我们可以真诚地重复使用它们?

我发现很难为我的应用程序选择一个DAL,它足以支持对大多数常见数据库系统(MySQL,PostgreSQL,MSSQL,Oracle等)的抽象,并且是:

  1. 广泛测试,
  2. 具有良好的接口(可读的方法名称,良好的参数传递策略),
  3. 快速,
  4. 轻巧,
  5. 提供缓存(例如与Memcache集成或支持良好的缓存机制),
  6. 开源许可证,
  7. 应该至少有MySQL/MySQLi的适配器(非基于PDO)

一些要考虑的图书馆:

请不要考虑:

  • PDO
  • 所有ORM(但是,除了ORM,Doctrine似乎还有一个单独的DAL)

php database database-abstraction

24
推荐指数
2
解决办法
3万
查看次数

数据库抽象层设计 - 以正确的方式使用IRepository?

我正在设计我的ASP.NET MVC应用程序,我遇到了一些有趣的想法.

我见过的很多样本都描述并使用了Repository模式(IRepository),所以这就是我学习MVC时的方式.

现在我知道它正在做什么,我开始看看我目前的设计并想知道它是否是最好的方式.

目前,我有一个基本的IUserRepository,它定义方法,如FindById(),SaveChanges()等.

目前,每当我想在DB中加载/查询用户表时,我都会按照以下方式执行操作:

    private IUserRepository Repository;

    public UserController()
        : this(new UserRepository())
    { }

    [RequiresAuthentication]
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Edit(string ReturnUrl, string FirstRun)
    {
        var user = Repository.FindById(User.Identity.Name);

        var viewModel = Mapper.Map<User, UserEditViewModel>(user);
        viewModel.FirstRun = FirstRun == "1" ? true : false;

        return View("Edit", viewModel);
    }

    [AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken(Salt = "SaltAndPepper")]
    public ActionResult Edit(UserEditViewModel viewModel, string ReturnUrl)
    {
        //Map the ViewModel to the Model
        var user = Repository.FindById(User.Identity.Name);

        //Map changes to the …
Run Code Online (Sandbox Code Playgroud)

.net asp.net-mvc database-abstraction

14
推荐指数
1
解决办法
2810
查看次数

"数据抽象"究竟意味着什么?

数据抽象是指什么?请提供现实生活中的例子.

c++ database-abstraction abstraction

12
推荐指数
3
解决办法
4万
查看次数

使用Doctrine for PHP的优点?

刚刚遇到了Doctrine Project,它有一个Object Relational Mapper和一个DB Abstraction Layer.Doctrine提供的其他PHP抽象层不是什么?除了通过使用Doctrine查询语言编写的查询获取对象之外,还有什么实际用途可以放置ORM?查询语言真的是您想要开发整个Web应用程序吗?它表现良好吗?

总的来说,在Doctrine上构建应用程序是否更容易维护和理解?它是否过度设计,并且正在构建一个适合中小型项目的抽象层?(<50个GUI屏幕),而不是直接使用MySQL.

php architecture orm database-abstraction web-applications

9
推荐指数
1
解决办法
4085
查看次数

ORM在哪里落空?

我经常听到人们因为缺乏灵活性和"漏洞抽象"而抨击ORM,但你真的不知道他们为什么会有问题.如果使用得当,ORM的错误究竟是什么?我问这个是因为我正在研究一个PHP orm,我希望它能解决许多其他ORM失败的问题,例如延迟加载和缺少子查询.

请具体说明您的答案.显示一些代码或描述ORM挣扎的数据库模式.语言或ORM无关紧要.

orm database-abstraction

6
推荐指数
1
解决办法
811
查看次数

计算Codeigniter中数据库查询返回的结果数

检测到Codeigniter中的数据库查询返回零结果时,我没有太多运气.我已经很好地阅读了关于PHP计数功能的说明,但我没有更明智!

我从控制器调用如下查询/视图:

$data['result'] = $this->search_model->do_search(set_value('name'));
$data['title'] = "Search results";
$this->load->view('search_view',$data);
Run Code Online (Sandbox Code Playgroud)

该视图生成一个结果表为我好,但是当我试图和陷阱空结果,计数始终返回1:

我试过if count(array($result)),只是if count($result)

那么什么是获得计数的好方法?我在我的开发笔记本电脑上使用Fedora 13和PHP 5.3.3.

php database-abstraction codeigniter

6
推荐指数
2
解决办法
5万
查看次数

MySQL:字段长度.真的有关系吗?

我正在使用一些数据库抽象层,其中大多数都使用像"String"这样的属性,它是VARCHAR 250或INTEGER,长度为11位.但是例如我的东西长度不到250个字符.我应该去减少它吗?它真的有任何有价值的差异吗?

提前致谢!

mysql sql database database-abstraction

6
推荐指数
1
解决办法
4205
查看次数

在简单的PDO上,Doctrine的数据库抽象层提供了什么?

如果我在简单的PDO上使用Doctrine的数据库抽象层(DBAL),会得到什么?

PDO本身不应该是抽象层吗?据我所知,我获得的唯一好处是能够将Oracle的oci8驱动程序与类似PDO的API一起使用。

我想念什么?

php pdo database-abstraction doctrine dbal

5
推荐指数
1
解决办法
1011
查看次数

使用PHP PDO的数据库抽象类设计

我正在设计一个Web应用程序(实际上,这是一个爱好,我正在尝试自学设计,还有什么比做它更好的方法:).无论如何,我在考虑如何处理我的数据库.我对PDO很满意,我想在我的抽象类中利用PDO.我正在考虑制作单例,因此只有一个数据库连接.这个单例将创建一个PDO连接.

在那之后,我不明白为什么我需要做太多其他事情.然后我可以使用数据库处理程序来调用PDO函数.我可能想要一些辅助函数,但是当它归结为它时,我只会将PDO用于实际的SQL查询.

这种方法有问题吗?与我使用的抽象类相比,它看起来过于简单.

php oop pdo database-abstraction

4
推荐指数
1
解决办法
4168
查看次数