PHP odbc_fetch_array 字符串限制

2023-12-11

我有以下sql

SELECT
bw_imp_step as imp_action,   
FROM cm3rm1 m1 INNER JOIN cm3rm2 m2 ON m1.number=m2.number
WHERE m1.number='$id'

当在 DbVisualizer 中返回相同的查询时,它返回整个字符串,但是在我的 php 中运行相同的查询会限制字符串并将其截断。

返回的字符串大约有 5500 个字符。

下面是运行上述查询的 php 脚本:

$connection = odbc_connect("Driver={SQL  Server};Provider=SQLNCLI;Server=sname;Database=cbname;","username","password")

$sql = "SELECT
bw_imp_step as imp_action, 
FROM cm3rm1 m1 INNER JOIN cm3rm2 m2 ON m1.number=m2.number
WHERE m1.number='$id'";
$result = odbc_exec ($connection,$sql);

if ($row = odbc_fetch_array($result){
   $imp_action = $row["imp_action"];
}

当我将 put $imp_action 放入页面甚至文件中时,它会在大约 5000 个字符处截断字符串。

所以我的问题是:PHP 是否限制结果集返回的字符串的大小?我读过,php 可以处理 2GB 的字符串大小,而这个字符串甚至还没有接近这个大小。


我知道这是一篇旧帖子,但我也刚刚遇到过这个问题,情况非常复杂,需要一个完整的答案。

您的数据有几个地方可能会被截断。

ODBC 长读长度

ODBC 对于大列有默认的长读取长度 (lrl)。通过执行以下操作之一,确保您的 fetch 的 lrl 足够大:

  • 将默认值设置为php.ini更大的事情,比如odbc.defaultlrl = 10000.

  • Or use ini_set("odbc.defaultlrl", "10000");在您的代码中设置它before建立您的联系。

  • Or use odbc_longreadlen($result, "10000");在获取结果之前将其设置在代码中。

FreeTDS

如果您使用 FreeTDS 从 Linux 环境连接到 MS SQL 数据库,则有一个text size您设置的限制freetds.conf文件。在这里仔细检查您的配置是否足够大。

php_mssql

正如@Anujan的回答一样,有些人(我认为不是OP)可能正在使用php_mssql建立他们的联系,在这种情况下,您要确保您的mssql.textlimit and mssql.textsize足够大,或者通过将它们设置在您的php.ini或者在您的代码中添加以下内容(在建立连接之前):

ini_set('mssql.textlimit', "10000");
ini_set('mssql.textsize', "10000");

SQL服务器

SQL Server 本身设置了默认文本大小,您可能需要显式增大它(特别是在不使用 ODBC 的情况下)php_mssql以及上面给出的配置)。在这种情况下,请将以下内容添加到查询字符串的开头:

SET TEXTSIZE 10000
SELECT big_ol_column FROM wherever
...

请注意,一些更改(例如php.ini)可能需要您重新加载/重启 PHP/Nginx/Apache 才能生效。

通过查看截断的结果大小,您应该能够找出其中哪一个限制了您的结果。对我来说,所有内容都会返回 4096 个字符长,所以我新设置的限制就是这个长度。

另请注意,上例中的“10000”并不是一个神奇的数字——请根据您的需要进行调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP odbc_fetch_array 字符串限制 的相关文章

  • 致命错误:未捕获错误:调用未定义的函数 bcadd()

    安装 eduTrac SIS 并访问 仪表板 后出现此错误 Ubuntu 16 4 PHP 7 0 php7 0 fpm Apache2 Nginx URL 给出错误 500 并显示 nginx error log FastCGI 在 st
  • Symfony2 安全性 @Secure 注释不起作用

    我正在尝试使用注释来保护我的控制器 namespace Vinny StreamBundle Controller use Symfony Bundle FrameworkBundle Controller Controller use J
  • 如果我没有可在 T-SQL PIVOT 中用作聚合函数的列怎么办?

    正如这里所见 http www tsqltutorials com pivot php http www tsqltutorials com pivot php 如果我没有可以执行 SUM 的列怎么办 如何获得数据透视表结果 总有COUNT
  • 查看oracle有关主/外键约束的元数据

    哪个表包含有关约束的详细信息 例如外键引用的表 表 all cons columns all constraints 仅包含约束的名称 这不是很有帮助 我目前正在使用 dbms metadata get ddl 但它不适用于所有数据库 Th
  • SQL Server 'FETCH FIRST 1 ROWS ONLY' 无效使用

    我正在尝试将 Db2 查询转换为 SQL Server 我遇到了一个我不熟悉的构造 仅 FETCH FIRST 1 ROWS 这是在 db2 上运行的查询 select from products series where state xx
  • 使用 AJAX 来回发送信息

    使用 post 你可以向服务器发送信息 但是当你需要从服务器接收信息时怎么办呢 信息如何从可以由 php 变量保存的方式变为可以由 javascript 变量保存的方式 反之亦然 这与您的问题更相关 http docs jquery com
  • 使 IPTC 数据可搜索

    我对 IPTC 元数据有疑问 是否可以通过 IPTC 元数据 关键字 搜索不在数据库中的图像并显示它们 我将如何执行此操作 我只需要一个基本的想法 我知道 PHP 有 iptcparse 函数 我已经编写了一个函数来获取画廊文件夹和所有子目
  • 如何使用多个Auth组件?

    我使用用户模型将身份验证组件配置为 管理页面 但现在 我还想为客户端创建 配置身份验证 我尝试 重写 inialize This is in my ClientsController php public function initiali
  • 通过电子邮件发送在 HTML5 画布上创建的图像

    我有一个画布 用户可以通过交互来更改设计 现在 用户完成更改后 可以提交他的设计及其电子邮件 ID 但为了提交设计 我使用以下方法将画布转换为图像http www nihilogic dk labs canvas2image http ww
  • T-SQL 插入或更新

    我有一个关于 SQL Server 性能的问题 假设我有一张桌子persons包含以下列 id name surname 现在 我想在此表中插入一个新行 规则如下 If id表中不存在 则插入该行 If id存在 然后更新 我这里有两个解决
  • PHP 将日期与今天的日期进行比较

    我正在尝试采用以下格式的信用卡到期日期mm yy并查看该日期是否已过 以便我知道信用卡是否已过期 如果已经过期 则一类expired被插入到 tr 我的代码结果检查了 05 16 的样本日期 并且脚本显示该卡尚未过期 而显然该卡已经使用了一
  • SQL:删除SQL Server中的重复记录

    我有一个 sql server 数据库 我预先加载了大量数据行 不幸的是 数据库中没有主键 并且表中现在存在重复信息 我不担心没有主键 但我担心数据库中有重复项 有什么想法吗 原谅我是一个sql server新手 嗯 这就是表上应该有主键的
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • 获取每月第二个星期二的日期

    有没有办法使用 T SQL 语法找出每月第二个星期二的日期 例如 三月是十二号 四月是九号 您可以通过此方法查找 2013 年所有 第二个星期二 select dateadd day 8 datediff day 1 dateadd mon
  • php平台安装询问我intl扩展,但似乎已经安装

    在 orocrm 安装期间 使用 symfony 2 开发的平台 我收到此错误 Fatal error Uncaught exception Symfony Component Intl Exception MethodArgumentVa
  • 即使浏览器关闭,如何保持 PHP 会话处于活动状态?

    即使用户不小心关闭了浏览器 如何才能保持用户的会话处于活动状态 例如 Facebook 如果您登录他们的网站并关闭选项卡或浏览器 当您再次打开浏览器并访问 Facebook 时 他们会自动检测活动用户 并且不会将您重定向到登录页面 我怎么做
  • 在 Laravel 中使用 grpc,“未找到‘Grpc\ChannelCredentials’类”。

    我正在尝试在 Laravel 项目中使用 grpc 这是我的composer json 文件的一部分 require datto protobuf php dev master google auth 0 7 0 grpc grpc dev
  • 如何返回调用不同数据库中的存储过程的远程数据库名称?

    我在一个 SQL Server 2008 R2 上有许多不同的数据库 为了便于论证 我们将它们称为 DB A DB B 和 DB C 我被要求开发一个将存在于 DB A 上的存储过程 该存储过程将用于删除和创建索引 并在 DB A 的表中存
  • 如何在没有脚本 (PHP) 或服务器配置 (Nginx) 的情况下检测移动设备(和/或移动 cookie)?

    我们很快就会推出网站的移动版本 我们的完整网站和移动网站仅在主题上有所不同 即网址相同 唯一的区别在于前端 当用户访问我们的网站时 我们需要能够执行以下操作 1 检查 cookie 移动 true 或 false 以确定是否已定义完整与移动
  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 具有固定行数的 ddply

    我想按 行数 分解数据 也就是说 我想向我的函数发送固定数量的行 当我到达数据帧的末尾 最后一个块 时 我只需要发送该块 无论它具有固定的行数还是更少 像这样的东西 ddply df 8 rows fun somefunction 如果你想
  • Odoo 8 - 如何更改页面标题?

    我想知道如何更改页面标题并从中删除 Odoo https www odoo com forum help 1 question change login page title 34874我尝试了这个 但我什么也没发现 标题使用标准 html
  • Python:运行进度条并同时工作?

    我想知道如何同时运行进度条和其他一些工作 然后当工作完成时 停止Python 2 7 x 中的进度条 import sys time def progress bar while True for c in sys stdout write
  • 当 DIV 的高度设置为“100%”时,为什么计算出的 DIV 高度大于其内容(如 svg)? [复制]

    这个问题在这里已经有答案了 这是我的代码 div align center style width 100 height 100 padding 0px margin 0px div
  • JavaScript for 循环索引奇怪[重复]

    这个问题在这里已经有答案了 我对 JS 比较陌生 所以这可能是一个常见问题 但我在处理 for 循环和 onclick 函数时注意到一些奇怪的事情 我能够用这段代码复制这个问题
  • 如何比较数组?还有改变属性?

    我是新的 ios 开发人员 我想比较和更改属性 数组1 对象1 对象2 对象3 对象4 数组2 对象2 对象4 对象5 对象8 比较数组 1 和数组 2 如果 Array2 中存在相同的对象 请更改对象中的属性 在上面的例子中 Object
  • 如何以 root 权限启动 QProcess?

    我需要启动gphoto2来自 Qt 程序 我这样做 QString gphotoProgram usr bin gphoto2 QStringList gphotoArguments gphotoArguments lt lt captur
  • 如何修复 Linux 中的“usr/bin/google-chrome 不再运行,因此 ChromeDriver 假设 Chrome 已崩溃”错误? [复制]

    这个问题在这里已经有答案了 我正在尝试设置一个 jenkins 服务器来在 Amazon Linux 上使用 Selenium webdriver 3 142 0 和 ruby 2 3 7 托管我的自动化框架 如果我尝试使用我的脚本调用 c
  • 从一堆对象中提取一个对象并检测边缘

    在我的大学项目中 我需要通过检测叶子的边缘来根据植物叶子的形状来识别植物的种类 我使用OpenCV 2 4 9和C 但源图像是在植物的真实环境中拍摄的 并且有不止一片叶子 请参阅下面的示例图片 所以这里我需要提取一片叶子的边缘图案来进一步处
  • 在 Visual Studio 环境中将第一个自定义对话框添加到 WIX

    我正在使用 Visual Studio 构建我的 wix 文件 到目前为止 我有一个文件 Product wxs 它可以进行简单的安装 现在我想添加一些自定义对话框 我认为从下面的两篇文章中 我了解了如何做到这一点 在我设置了环境之后 ht
  • 基底存储中私有变量的可能性

    是否可以将私有变量存储在底层存储中 特别是以以下形式存储并在私有函数中访问它们 derive Encode Decode Default Clone PartialEq Debug pub struct MyStruct id Hash t
  • python:ext4 文件系统中 os.path.exists 的复杂性?

    有谁知道 os path exists 函数在带有 ext4 文件系统的 python 中的复杂性是多少 使用的底层目录结构Ext4 and Ext3 与中完全相同Ext2 Ext3添加日记 Ext4改善日记 日记与你的问题无关 最初 Ex
  • 列出物理驱动器空间

    我有大约 200 台服务器 我需要获取磁盘空间和逻辑驱动器空间详细信息 可用空间 已用空间和总空间 这是我的 PowerShell 查询 infoObjects New Object PSObject foreach machine in
  • 在 Firefox 中使用 css 转换时边框渲染不正确

    我有一个像这样的简单 CSS 箭头 arrow brown height 18px width 18px border top 6px solid 39170b border right 6px solid 39170b moz trans
  • UITextView 或 UILabel Swift 上图像的自定义项目符号

    我正在创建一个应用程序 它基本上是一个大型网站的移动版本 该网站有一个特定区域列出了产品功能 每个功能都标有独特的自定义图像 有没有办法快速做到这一点 本质上 创建一个字符串项目符号列表 但使用小图像作为项目符号点 将 UITextView
  • 如何插入重新启动游戏选项?

    我希望在骰子游戏结束时有一个选项 上面写着 您想重新启动吗 是还是不是 如果用户输入 是 游戏就会重新启动 并且会无限次 直到用户玩够游戏并退出 我知道你可以用循环来做到这一点 但是怎么做呢 import random print Dice
  • Java程序如何获得自己的进程ID?

    如何获取我的 Java 进程的 ID 我知道有几种依赖于平台的技巧 但我更喜欢更通用的解决方案 不存在可以保证在所有 jvm 实现中工作的独立于平台的方法 ManagementFactory getRuntimeMXBean getName
  • sed 就地编辑文件

    如何编辑文件single sed命令 目前 我必须手动将编辑的内容流式传输到新文件中 然后将新文件重命名为原始文件名 I tried sed i 但我的 Solaris 系统说 i是一个非法的选择 有不同的方法吗 The i option无
  • 推送不会修改作为函数参数的列表[重复]

    这个问题在这里已经有答案了 我是 common lisp 的新手 所以希望有人能向我澄清这一点 假设我们有一个列表并想要添加一个项目push修改它 CL USER gt defparameter xx 1 2 3 XX CL USER gt
  • PHP odbc_fetch_array 字符串限制

    我有以下sql SELECT bw imp step as imp action FROM cm3rm1 m1 INNER JOIN cm3rm2 m2 ON m1 number m2 number WHERE m1 number id 当