PHP db2_fetch_assoc & db2_fetch_both
我成功连接到数据库,并使用 db2_fetch_array 和 db2_fetch_both 成功提取数据并显示它。下面的代码工作得很好
$file="m03slsd0";
$file=db2_escape_string($file);
$query="SELECT slgrpn,slfrkn,slftyp,slfsze,slpqty,slpwht,slentp,slkplt FROM HUTALIB.$file";
$quepre=db2_prepare($conn,$query);
$quexe=db2_execute($quepre);
while($row=db2_fetch_both($quepre))
{
$det=$row[0];
if($det!='')
{
printf($det."</br>");
}
}
当我将索引更改为 db2_fetch_assoc() 或 db2_fetch_array() 中的列名称时,问题出现了 - 下面的代码不打印任何内容。
while($row=db2_fetch_both($quepre))
{
$det=$row['slgrpn'];
if($det!='')
{
printf($det."</br>");
}
}
有什么建议吗?
提前致谢
I'm successfully connecting to the database, and successfully pulling data and displaying it using db2_fetch_array and db2_fetch_both. The code below works just fine
$file="m03slsd0";
$file=db2_escape_string($file);
$query="SELECT slgrpn,slfrkn,slftyp,slfsze,slpqty,slpwht,slentp,slkplt FROM HUTALIB.$file";
$quepre=db2_prepare($conn,$query);
$quexe=db2_execute($quepre);
while($row=db2_fetch_both($quepre))
{
$det=$row[0];
if($det!='')
{
printf($det."</br>");
}
}
The problem comes up when i'm changing the index to column name in db2_fetch_assoc() or db2_fetch_array() - the code below prints nothing.
while($row=db2_fetch_both($quepre))
{
$det=$row['slgrpn'];
if($det!='')
{
printf($det."</br>");
}
}
Any suggestions?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
数组键区分大小写,您将需要使用
不确定为什么字段名称变成大写 - 这可能是 db2 的一个特性。
Array keys are case sensitive you you will need to use
not sure why the field names get turned into uppercase - it might be a characteristic of db2.
DB2 标识符默认不区分大小写,并且将使用/返回大写字段名称,除非您的列是在双引号内定义的(同样适用于表名称):
查询此表:
... 在 PHP 中将返回类似以下内容
:必须做的:
要消除任何歧义,您可以更改查询:
...或用双引号定义所有字段和表名称:
DB2 identifiers are case-insensitive by default, and will use/return uppercase field names, unless your columns are defined within double quotes (same applies for table names):
Querying this table:
... in PHP would return something like:
So you'd have to do:
To remove any ambiguity, you can change your queries:
...or define all fields and table names with double quotes: