问题标签 [zend-db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
13979 浏览

php - Zend 表单编辑和 Zend_Validate_Db_NoRecordExists

我正在通过构建一些实用程序网站供我自己使用来慢慢提高我的 Zend 技能。我一直在使用 Zend 表单和表单验证,到目前为止,我很高兴我已经理解了 Zend 的做事方式。但是,我对如何在编辑表单和映射到必须唯一的数据库列的字段的上下文中使用 Zend_Validate_Db_NoRecordExists() 有点困惑。

例如使用这个简单的表

如果我只是向 Table Test 添加一个新行,我可以为 Data 字段的 Zend Form 元素添加一个验证器,如下所示:

在表单验证时,此验证器将检查 Data 元素的内容是否已存在于表中。因此,插入测试可以继续进行,而不会违反数据字段 UNIQUE 限定符。

但是,在编辑 Test 表的现有行时情况有所不同。在这种情况下,验证器需要检查元素值是否满足两个互斥条件之一:

  1. 用户已更改元素值,而新值当前不存在于表中。

  2. 用户更改元素值。因此,该值当前确实存在于表中(这没关系)。

Zend Validation Docs讨论了向 NoRecordExists() 验证器添加一个参数,以便从验证过程中排除记录。这个想法是“验证表以查找任何匹配的行,但忽略 a 字段具有此特定值的任何命中”。这样的用例是在编辑表格时验证元素所需要的。在 1.9 中执行此操作的伪代码是这样的(实际上我是从 1.9 源代码中得到的——我认为当前的文档可能是错误的):

问题是要排除的值 ($Value) 在实例化时绑定到验证器(也在实例化表单时)。但是当表单正在编辑记录时,当表单最初填充数据时,该值需要绑定到 $data 字段的内容 - 即最初从测试表行读取的数据值。但是在典型的 Zend 模式中,表单是在两个单独的步骤中实例化和填充的,这排除了将排除值绑定到所需的元素值。

以下 Zend 伪代码标记了我希望将 $Value 绑定到 NoRecordExists() 验证器的位置(请注意,这是常见的 Zend 控制器模式):

我可以继承 Zend_Form 并覆盖 populate() 方法,以便在初始表单填充时一次性插入 NoRecordExists() 验证器,但这对我来说似乎是一个巨大的黑客攻击。所以我想知道其他人的想法,是否有一些已经写下来的模式可以解决这个问题?

编辑 2009-02-04

我一直认为解决这个问题的唯一体面的方法是编写一个自定义验证器而忘记 Zend 版本。我的表单将记录 ID 作为隐藏字段,因此给定表名和列名,我可以制作一些 SQL 来测试唯一性并排除具有此类 ID 的行。当然,这让我开始思考如何将表单绑定到模型应该隐藏的 dB 层!

0 投票
2 回答
1831 浏览

php - Zend 数据库选择?join* 条件下的替换

看起来Zend_Db_Select's on 子句中没有任何参数替换。

我不能只做类似的事情,这很烦人:

那么在流畅的界面中工作的惯用替代方案是什么?我可以做一些事情,比如在外面准备 join 子句,但这不是重点。

0 投票
1 回答
8379 浏览

sql - Zend 框架 zend_db_select 订单

得到错误:

消息:SQLSTATE[HY093]:无效参数号:未绑定参数

问题似乎与 $select->order 一致。

这是为了结果的相关性。它在 Zend Framework 中应该是什么样子?

搜索似乎有些问题。它搜索的一些词和一些不搜索的词。为什么会这样?:Z

谢谢

0 投票
1 回答
419 浏览

mysql - 如何通过你自己的 mysql 连接到 Zend_DB?

我有自己的 mysql_connect ...等,直到我想将 ZEND 框架与 Zend_DB 一起使用。如何传递我的连接以用作 ZEND 的适配器?

0 投票
2 回答
1978 浏览

mysql - Zend_db 联结表连接查询

不知道为什么我无法弄清楚这一点。基本上,我有两个具有多对多关系的表,所以我在它们之间有一个连接表。

例如,考虑以下数据库模式:

所以,很多餐厅可以有很多菜系。

我尝试构建的查询将返回郊区存在的所有美食。一个 SQL 示例如下:

这对我来说似乎很有意义。

我如何使用 Zend_Db 来实现它?

0 投票
3 回答
6732 浏览

zend-framework - Zend_Db_Table UTF-8 字符

我的数据库中的表是使用正确的 UTF-8 字符集创建的,如下所示:

但是,当我使用 Zend_Db_Table 通过这种方法从表中获取数据时:

它返回一个带有混乱 UTF-8 字符的对象(我猜是转换为 iso-8859-1)。

当我通过 phpmyadmin 查看数据库时,它正确显示了所有字符,并且还显示了正确的编码(UTF-8),所以我不知道问题出在哪里。

我怎么解决这个问题?

更新:

所以我做了这个并且它有效:

有没有更好的方法?

更新2:

我试过这个:

我得到一个错误:

0 投票
1 回答
149 浏览

zend-framework - Zend_Auth - 强制使用 Zend_DB 进行快速安装/使用?

我正在考虑使用 Zend_Auth 作为网站的身份验证“机制”(组件)。快速浏览后意识到,对于数据库表身份验证,我还必须使用 Zend_Db 组件。

有没有人尝试过这种方法?我是否被迫使用和/或扩展/实现 Zend_DB 方法/接口,以便将 Zend_Auth 集成到网站(Web 应用程序?)中。

我可以将自己的 DB 抽象层插入 Zend_Auth 组件并指示 Zend_Auth 轻松将其用于数据库表身份验证吗?我试图弄清楚这样的解决方案是否值得付出努力。

0 投票
3 回答
1433 浏览

unit-testing - Zend Framework:我应该如何在 Zend_Db 中对我的 Mapper 进行单元测试?

我将如何在 Zend_Db 中测试我的映射器?我的每个模型都有 3 个类:

  • 该模型
  • 映射器
  • 数据库表

这是我的单元测试:

我正在使用 Matthew 的 TestHelper:http: //github.com/weierophinney/bugapp/blob/master/tests/TestHelper.php

我得到的错误是这样的:

似乎没有读取映射器。谁能告诉我如何进行这种测试?我是 UnitTesting 的新手,我才刚刚开始学习它。

这是我的艺术家模型

这是艺术家映射器:

Db_Table 看起来像这样:

0 投票
3 回答
17183 浏览

php - Zend DB fetchAll():带有 IN 运算符的 where 子句数组

我正在使用此查询的等效项从数据库中选择记录:

调用 fetchAll() 的函数有一个参数是用户 ID 的数组,这个调用工作得很好:

但是,我想为 where 子句使用一个数组,因为稍后查询可能会有其他限制……而且我一生都无法弄清楚。我认为这将是以下方面的一些变化:

但到目前为止还没有骰子。有人可以在这里提供正确的语法吗?

0 投票
2 回答
1438 浏览

zend-framework - 如何使用 NOW() 创建正确的 UPDATE 查询?

构建“UPDATE table SET date = NOW() WHERE id = 1”查询的方式是什么?

上面的代码不能正常工作。