关于PHP的变量问题

<?phpinclude("Inc/Config.php");?><?phpOpenRs("Select*FromWorker");echo$Rs['UserName']... <?php include("Inc/Config.php"); ?>
<?php
OpenRs("Select * From Worker");

echo $Rs['UserName']; //正常输出

$a=$Rs['UserName'];

echo $a; //正常输出

CloseRs(); //这里的关闭已打开的数据库 即: $Rs->Close;

echo $a; //错误!!!!! Why??????????????????
?>
提示:Catchable fatal error: Object of class variant could not be converted to string in

数据值都付值给变量了,数据库还不能关吗??这是为什么,一般大家怎么处理?
我是新手!但有多年其它语言编程经验!
我上面查询好的数据存为变量,想在下面随时调用,这可倒好,一关闭数据集,变量也不能用了,即是不关的话(写程序一直讲究系统资源合理利用,使用过的内存要极时释放,PHP可倒好,好像一直想说服大家,不要用$Rs->Close;),下面我还要继续查询其它数据,如果还用$Rs存储数据集的话,那这个变量也还是不能用,太变态了,直不知那些一直吹PHP好的人脸红不红。
下面想问我的这个问题如何解决????
展开
 我来答
rockmant
2011-11-28 · TA获得超过2247个赞
知道小有建树答主
回答量:904
采纳率:0%
帮助的人:530万
展开全部
php5 中是不能用 = 直接把对像赋值给变量的, = 和 =& 都是一样都是对像的reference而不是copy
所以当对像关了, $a 所参考的值也没了
更多追问追答
追问
也不行,提示错误,跟以前一模一样。
php5 中是不能用 = 直接把对像赋值给变量的?
$Rs['UserName']; 应该是个字符串,怎么会是对象?

---------------------------------------------------
你这里终于给了我一个灵感:
$a=$Rs->Fields['UserName']->value;
竞然通过了!唉,PHP啊!
追答
正如上边那位仁兄说这不关php的事, 数据库关闭后变量的值是不变的, 不知道$Rs->Close()里面做了什么, 但这也好像跟$a沒关系, $a本身是独立的, 看不到源碼真沒辦法知道真正原因
lifei6671
2011-11-28 · TA获得超过9228个赞
知道大有可为答主
回答量:3899
采纳率:25%
帮助的人:2769万
展开全部
你的这个问题不是PHP的问题。你可以看一下比较流行的cms。他们里面调用读取数据库的类也是关闭,关闭后变量的值是不变的。
所以,可能是你的数据库读写的代码可能出错。看看你关闭数据库的代码有没有错误!
追问
我关闭数据库的代码就是一个 $Rs->Close; 没有其它了。
cms系统我自己都做过,ASP做的。
这应该是PHP里最初级的问题吧,好像好多人都没有研究过????
PHP中设置变量不是新建一个内存地址吗?难道只是给内存地址起个别名的作用?

怎么解决这个问题???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐天无极
2011-11-28 · TA获得超过291个赞
知道小有建树答主
回答量:1085
采纳率:0%
帮助的人:410万
展开全部
变量赋值,你那个是同地址的,当执行了CloseRs()的时候,$RS这个已经在内存中释放了。变相的$a这个变量的地址没了...肯定没法读了嘛。
追问
那设这个变量有鸟用?
PHP中设置变量不是新建一个内存地址吗?难道只是给内存地址起个别名的作用?
我会ASP,VB,DELPHI,JS,C++,JAVA等(后两个不太熟),我以上的写法都可通过,只有PHP“牛”,我今天算见识了,我感觉这样极不合理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式