InfoQ

交流

讨论:请教:php访问数据库出现重大内存泄漏

作者 yonnie 发布于 0000-00-00 分类:php基础编程

PHP访问MySQL、SQL Server 和Oracle数据库时,Apache占用的内存和虚拟内存不断增长,增长的大小与记录大小、记录数和脚本运行次数相关。
为使测试结果较为明显,建议记录数在500条以上,每记录大小不小于100K,刷新频率小于0.5秒。

环境:
1、Windows 2000 Server或Windows XP Server中文版
2、Apache 1.3.26或2.0.48
3、PHP 4.3.4
4、MySQL 4.0.13
SQL Server 2000
Oracle 8.1.7或9.2

附测试程序:
一、MySQL数据库
<?
$conn=mysql_pconnect("hostname","username","password");
mysql_select_db("dbname",$conn);
$rs=mysql_query("select * from tablename");
while($arr=mysql_fetch_row($rs)){
foreach($arr as $value){
echo $value;
}
}
mysql_free_result($rs);
mysql_close($conn);
?>

二、SQL Server数据库
<?
$conn=mssql_pconnect("hostname","username","password");
mssql_select_db("dbname",$conn);
$rs=mssql_query("select * from tablename");
while($arr=mssql_fetch_row($rs)){
foreach($arr as $value){
echo $value;
}
}
mssql_free_result($rs);
mssql_close($conn);
?>

三、Oracle数据库
<?php
$conn = ociplogon("username","password","tnsname");
$query = "select Clob_FieldName from tablename";
$stmt = OCIParse ($conn, $query);

//方法一
OCIExecute($stmt);
while(ocifetchinto($stmt, $arr)){
echo $arr[0]->load();
}

//方法二
//OCIExecute($stmt, OCI_DEFAULT);
//while(ocifetchinto($stmt, $arr, OCI_ASSOC + OCI_RETURN_NULLS)){
// echo $arr["Clob_FieldName"]->load();
//}

//方法三
//OCIExecute($stmt, OCI_DEFAULT);
//while(ocifetchinto($stmt, $arr, OCI_ASSOC + OCI_RETURN_NULLS + OCI_RETURN_LOBS)){
// echo $arr["Clob_FieldName"];
//}

ocifreestatement($stmt);
ocilogoff($conn)
?>



逛论坛交流请教:php访问数据库出现重大内存泄漏

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

7 条回复

回复

难道各位没有发现这个问题吗? 还是都保.. 发表人 yonnie 发表于 12月02日
难道各位都没碰到过这个问题? 怪了 发表人 yonnie 发表于 12月03日
看不懂啊! 发表人 yanqing001 发表于 12月03日
yes,you right 发表人 笨鹤 发表于 12月03日
??? 发表人 yonnie 发表于 01月01日
荒芩得鱓INDOWS的内存管理机制太烂了. 发表人 chinaboy 发表于 01月03日
涯愕膒connect换成connect试一下 发表人 wamper 发表于 01月03日
  1. 难道各位没有发现这个问题吗? 还是都保持沉默的权利—:)

  2. 难道各位都没碰到过这个问题? 怪了

  3. 看不懂啊!

  4. yes,you right

  5. ???

  6. 荒芩得鱓INDOWS的内存管理机制太烂了.

  7. 涯愕膒connect换成connect试一下




  8. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

表单数据能同时提交给2个不同的网页吗?

如题. 就是说,用户在一个表单里填写了一些数据,比如他的年龄,姓...

请问php中的"?"怎么用

常看到PHP源代码中出现"?". 不知道这个"?"什么意思,怎么用? ...

谁玩Smarty

我最近想研究研究Smarty 但是我E文不是太好,有兴趣在这方面探讨...

Iis 启动后在本地可以访问,通过互联网...

Winxp 系统下

两张票!!!

我一位女的朋友搞了两张羽泉演唱会的票给我. 可惜,我不喜欢看演...

几个问题的疑惑

1.怎么实现网页后退过期?(考试系统要用到,熟悉na考试的应该知...

session问题求解!痛苦中。。。。

[PHP] Session_Start(); Session_Register("UserID"); Ses...

营销人员每天该问自己的问题

营销人员每天该问自己的问题   我们在销售工作过程中,第一...

关于数据导入的问题。

如何将mdb数据导为sql的数据库?

hotfire!!!!

hotfire! 你这个家伙老见你来 就是不见吱声

[]