问题标签 [notorm]

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 投票
2 回答
4389 浏览

php - 现有 PHP 应用程序需要一个简单的 ORM 或 DBAL

我正在扩展现有的 PHP 应用程序。对我来说不幸的是,现有的应用程序一团糟。这都是带有原始 mysql_* 调用的意大利面条代码。呻吟。我不可能在我正在扩展的部分中这样做。

所以,我正在寻找一个简单的 DBAL ORM,我可以轻松地投入并开始使用。所需功能:

  • 它必须适用于现有的数据库模式。最好有最少的或没有额外的配置。现有的数据库模式与现有的 PHP 代码质量相同(没有合理的命名约定,未规范化等)。我不想花几天时间将数据库模式手动转换为带注释的对象属性,就像 Doctrine 2 一样。
  • 它必须能够与现有的原始 mysql_* 查询一起工作。我不知道当脚本在背后手动操作数据库中的数据时,像 Doctrine 2 或 Propel 这样的水合 ORM 的行为如何,但我认为它并不漂亮。
  • 它必须在 PHP 5.2.x 上运行。我很想使用PHP 5.3,但我对检查现有的 125K 行意大利面条代码混乱以确保它在 PHP 5.3 上运行的兴趣为零。
  • 不需要关系。在我需要访问关系数据的少数几个地方,我很乐意自己调用一个额外的find()query()其他任何东西。
  • 如果它有一些触发支持(例如beforeSaveafterSave),则加分。不是要求,但很高兴拥有。

编辑:有人让我摆脱了痛苦。我刚刚发现 125K 行意大利面条代码也改变了数据库模式。例如,在某处添加一个额外的选项,大量的 ALTER TABLE 语句开始运行。我可能可以用这个代码库填满一年的 TheDailyWTF。所以,还有一个要求:

  • 必须能够自动应对不断变化的数据库模式(例如添加列)。

我一直在寻找一些解决方案,但我不确定在满足要求的情况下它们的效果如何。Doctrine 2、RedBeanPhp 之类的都需要 PHP 5.3,所以它们被淘汰了。有用于 PHP 5.2.x 的 RedBeanPhp 的旧版本,但我不知道它是否适用于混乱的现有数据库模式。NotORM 看起来可以用于获取数据,但我不知道是否可以为现有的数据库模式配置它,以及如何轻松地将数据放回数据库。

理想情况下,我想要一些简单的东西。例如:

或者:

欢迎任何提示甚至替代解决方案!

0 投票
1 回答
307 浏览

php - php序列化函数解析错误

我有这个数组

我正在使用notorm,现在这个查询

查询

但在表中

现在的问题是序列化发生了什么

0 投票
1 回答
452 浏览

php - 如何在 notORM PHP 库上创建虚拟表

如何在 notORM PHP 库上创建虚拟表。例如,我想像这样制作 sql:

0 投票
7 回答
6086 浏览

php - NotORM:如何获取数据?

我在使用选择时遇到问题,我尝试阅读文档,但不太清楚,谈论它的论坛很少且不活跃。

我想做一个简单的选择,所以我尝试了:

但是,这给了我一个 NotORM 对象,在该对象中我看不到执行正常操作时得到的结果行:SELECT id, group_title FROM user_types WHERE id = 1

我尝试使用 fetch() 但不确定如何使用它。有什么见解吗?

0 投票
1 回答
839 浏览

php - 动态查询检索

我正在使用 NOTORM 生成查询,在应用程序中有一种情况,用户可以选择字段、条件等,因此基本上可以提出自定义查询。这样,用户可以生成一个报告,例如“名字的人 = Jack 花费 > 800”。

我正在使用 NOTORM 生成此查询,但我想存储查询以供不使用 NOTORM 的应用程序的另一部分使用。是否有任何功能可以检索生成的查询?

这是 NOTORM 对象在生成和执行查询后的样子:

我可以做一些迭代'where'和'parameters'的脚本,但似乎不太优雅,特别是因为这些数组的顺序不正确(我必须做一些事情,比如用下一个项目替换每个“?”在“参数”中)...任何NOTORM函数?或者您建议的任何更优雅的方式?

这是 'where' 和 'parameters' 部分,以防你对最后一个选项有一些优雅的东西:

0 投票
1 回答
1100 浏览

mysql - NotORM 的连接与多选

我正在查看这个名为NotORM的 PHP DB 库,在阅读它的文档后,我已经阅读了它关于连接的立场。争论基本上是单个 SQL 查询的性能与连接与使用多个选择查询然后交叉引用 DB 抽象层中的结果。

我一直都知道单个查询应该总是比使用多个查询更好,所以 NotORM 的想法对我来说是新的。我也不确定这一点,因为我只在 NotORM 中看到了这个“功能”。

想问问大家对这个问题的看法。

哪个查询更好更快?

这...

相对...

这第二种方法真的实用吗?

0 投票
2 回答
3095 浏览

php - 在 NotORM 中使用 JOIN

一直在尝试以下代码

http://sql-cross-queries.freexit.eu/dibi/notorm创建一个 JOIN 语句,但无济于事。我错过了什么吗?

我有报告(时间戳、事件 ID、位置 ID)、事件(事件 ID、事件描述、位置 ID)和位置(位置 ID、位置名称)。我试图通过加入报告、事件和位置来获取时间戳、事件名称和位置名称。所以我使用了以下语句:

但它没有返回任何东西。但是,以下声明:

返回报告。

0 投票
1 回答
853 浏览

php - NOTORM 自定义 mysql 函数

如何选择从现有字段计算的自定义值?

例如,我正在存储出生日期,并且我想选择从 mySql 函数计算的年龄。

0 投票
2 回答
1701 浏览

php - 调试 NotORM 调用导致“使用未定义的常量 STDERR - 假定为 'STDERR'”

我正在调试一个在 PHP 5.4 上使用 Slim 和 NotORM 的项目。将 NotORM 设置为调试模式时,NotORM 跟踪语句:

引发以下错误:

我感觉问题是 Slim,因为执行 Php 命令行脚本时没有显示错误消息。

有谁知道如何解决这个问题(最好不修改 NotORM)?

提前致谢。

0 投票
0 回答
372 浏览

php - PHP 和大型 CSV 文件

我正在使用一个名为 parsecsv.lib.php 的库来读取 csv 文件。然而,这些文件的大小已经增长到大约 30MB。该库尝试将 csv 的全部内容加载到一个数组中,该数组正在变成具有超过 100,000 个元素的数组。这显然不好,所以我推出了自己的解决方案,如下所示:

这是一次读取一行并使用键作为标题保存,然后保存。

我的问题是,如果我将提供给我的保存方法的数据量分块,我是否会提高速度。现在它一次只有一个数组,但我可以给它一个数组数组并保存它们。我只是不确定分块数据是否有任何优势。任何有经验的人都有任何见解

这是保存方法: