因为我是PHP的新手,所以对我很轻松;)
我的开发堆栈是带有XAMP的Windows 7,我的实时服务器是一个交钥匙LAMP堆栈。
我正在使用ADODB连接到MSSQL,并将所有结果附加到一个字符串中,代码如下:
$sql = "SELECT Field1 FROM tb_Table";
$rs = $db->Execute($sql);
if (!$rs) {
print $db->ErrorMsg();
} else {
$arr = $rs->GetRows();
$rows = '';
//Loop through parent array (rows)
for ($i=0;$i<=(count($arr)-1);$i++) {
$rows .= " ".$arr[$i][0]." ";
}
print strlen($rows)
本地计算机上的字符串长度在服务器上为195,057,为136,858
我已经检查过从数据库返回了相同数量的行,但是我不明白为什么字符串的长度应该在环境之间有所不同。
非常感谢任何指针
答案 0 :(得分:1)
我不太熟悉ADODB扩展程序,但您可以尝试将for
循环更改为:
foreach($arr as $row) {
$rows .= " ".$row[0]." ";
}
这将解决分配给数组的键不连续的可能性。
如果这没有用,请尝试使用mb_strlen()
计算字符串长度,因为它适用于包含多个字节字符的编码:
print mb_strlen($rows);
答案 1 :(得分:1)
好的,怀疑了。问题不在于它是提供者的代码,Linux盒子上的提供者只从字段中返回最大长度为255.
Windows提供程序返回字段的全长。
感谢大家的关注:)。