问题标签 [hyperfilesql]

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 投票
0 回答
54 浏览

php - 使用 HyperFileSQL 时保护 SQL 查询免受 SQL 注入

问题:

我不能在查询中使用 odbc_prepare 或 PDO->prepare,因为我使用的驱动程序 (HyperFileSQL) 有很多问题。那么,我能做些什么呢?

细节:

  • 当我的数据不包含大字符串(超过 255 个字符)时,我可以将 PDO 用于某些查询,因此我可以毫无问题地使用准备好的语句,但是对于某些查询,我不能,因为它们返回的数据很大字符串(我猜是驱动问题)
  • 所以,我使用 odbc 进行这些查询。但是当我尝试 odbc_prepare 时,驱动程序会说以下内容:

“驱动程序不支持函数 SQLGetDescribeParam,SQLDescribeParameter 中的 SQL 状态 IM00”

所以......我想我有以下选择:

  • 硬编码以逃避坏字符
  • 将数据迁移到 MySQL 并使用我猜的 PDO 或 ODBC
  • 使用 PDO 执行查询以返回数据 ID(这样我可以保护我的语句),然后使用 odbc 返回我的大字符串,使用 PDO 返回的 ID ...
  • 换工作做一些美味的饼干

我仍然有希望,所以请告诉我有更简单适当的解决方案。

0 投票
1 回答
47 浏览

sql - SQL(HFSQL):如果 WHERE 子句,INNER JOIN 在性能上不是对称的?

我有一个基本的 HFSQL 数据库,有 3 个表:Company、Person 和 Worker。每个表有约 5 列和 5000 个条目。Worker 有一个名为 IDPerson 的人的外键,以及一个名为 IDCompany 的实体的外键。

我测试了以下 2 个查询(我只更改了 INNER JOIN 的顺序):

QUERY 1(~5ms 执行时间)

QUERY 2(~50ms 执行时间

找到的条目数相同,但执行时间慢了 10 倍。为什么? INNER JOIN 不应该是对称的吗?为什么在使用 WHERE 子句时,订单的性能会提高 10 倍?

请帮助我理解这种奇怪的行为!

PS:如果我只选择一些列而不是“ ”* ,性能问题是相同的