php怎么建立持久化连接呢,就是不用每个页面都写connection 初学php请问就是php怎么建立持久化连接呢,就是不用每个页面都写connection页面刷新从mysql取值的时候也会很慢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是 每次在页面刷点提交或者 修改数据库的数据时候 都很反映很慢 我记得在java中 就不会出现这种情况 点提交 用ajax就很快 建立持久化连接 每个页面都写connection这应该算2个概念吧,你这里connection也是直接链接的代码或句柄吧,就算是持久化链接你每个页面也要引入链接数据库的代码吧,你说的这个应该是把 数据库操作写到一个文件中或类中,每个页面引入这个文件或这个数据库类的句柄 请去理解php的机制,他和java是不一样的,或者你看哈以前著名的php沉思录 php里有pconnect, 虽然和java的不太一样...如果你出现"每次在页面刷点提交或者 修改数据库的数据时候 都很反映很慢"这样的问题而且能够直接感觉到, 那一定是有别的问题, 不是因为p还是不p的问题. p不p的区别不会如此明显. "我记得在java中 就不会出现这种情况 点提交 用ajax就很快"......嗯,不同的环境实在没法这样简单比较...就算你的java很快也绝不是因为持续连接的差别. http://www.cnblogs.com/OtisBlog/archive/2009/02/06/1385631.html你看看這個吧 最有效的方法是,安裝memcached,建立一次连接之后,把对象存入memcached里,以后直接调用就好了. 用Pconnection就行了,不会断开了 我研究了两天终于有解决方法了:如下<?phpSession_start();IF(IsSet($_SESSION['c'])) { $cls=unserialize(base64_decode($_SESSION['c'])); Echo '<br>存在了'.$cls->A.'<br>';}Else{ $cls=New Cls(); $_SESSION['c']=base64_encode(serialize($cls)); Echo '<br>不存在'.$cls->A.'<br>';}var_dump($_SESSION['c']);IF(is_object($cls)) { Echo '<br>這是一個對象<br>';}Else{ Echo '<br>這不是一個對象<br>';}Class Cls{ Public $A='<br>[該內容來自class]<br>'; Function __construct() { Echo '<br>---------<br>'; Return $this->A; }} 我说一下思路,上边的做法可以把一个类给建立一次实例化,然后存入session,以后就不会每次都实例化这个类了,只需要读取session就好了,同样的你所说的要建立长连接不需要每次都连接数据库也是这样的道理,只需要把链接数据库的class实例化一次然后存入session,以后要用的时候直接从session里取得实例就好了. 当然了,我在第13楼所说的存入memcache也可以,做法是一样的,只不过存放的位置不同罢了. to:sibang思路不错,但不能实现数据库持久化的效果你可以简单测试一下将句柄存入session后,不会是个有效的资源 可以的,我測試過了,這裡有完整的示例:http://download.csdn.net/detail/sibang/4671085 以前大家一直认为PHP无法建立持久性链接,包括我阅读的左轻侯的php沉思(一)http://www.bloggern.com/1557.html也是这样认为.但是这个惯性思维现在已经完全打破了,如果高手们能够把这个思路给进一步的完善一下的话,估计以后的php执行速度会上好几个台阶的.这个思路的完整演示代码下载地址是:http://download.csdn.net/detail/sibang/4671085 如果有什么问题的话,可以加我的php自学群一起讨论:223494678(群共享里也有这段示例代码可以下载) 但你仍然要每次预先加载类的定义,而且每次都要将对象的字符串表示反序列化。我觉得这样做其实比直接new一个对象要慢,虽然我还没有去测试过。至于靠这样做能保持一个持久连接,是不可能的 PHP和序建的网站如何在自己的电脑上调试运行? 为什么提交得出的rawurlencode() 跟直接输出的不一样的呢? 数据显示Resource id #4 在静态页面中用脚本读取一段动态页面 高分请教关于php打印收银条的问题在线等高手 关于cookie过期时间是负数的问题 检测表单提交后的错误 mysql数据库的连接问题(在线等待) 在线等候 PHP安装问题 谁有生成静态html页面的新闻程序或者思路阿 zend studio 书签问题, php 缓存函数
就是 每次在页面刷点提交或者 修改数据库的数据时候 都很反映很慢 我记得在java中 就不会出现这种情况 点提交 用ajax就很快
这应该算2个概念吧,你这里connection也是直接链接的代码或句柄吧,就算是持久化链接你每个页面也要引入链接数据库的代码吧,你说的这个应该是把 数据库操作写到一个文件中或类中,每个页面引入这个文件或这个数据库类的句柄
请去理解php的机制,他和java是不一样的,或者你看哈以前著名的php沉思录
"我记得在java中 就不会出现这种情况 点提交 用ajax就很快"
......嗯,不同的环境实在没法这样简单比较...就算你的java很快也绝不是因为持续连接的差别.
你看看這個吧
<?php
Session_start();
IF(IsSet($_SESSION['c'])) {
$cls=unserialize(base64_decode($_SESSION['c']));
Echo '<br>存在了'.$cls->A.'<br>';
}Else{
$cls=New Cls();
$_SESSION['c']=base64_encode(serialize($cls));
Echo '<br>不存在'.$cls->A.'<br>';
}
var_dump($_SESSION['c']);IF(is_object($cls)) {
Echo '<br>這是一個對象<br>';
}Else{
Echo '<br>這不是一個對象<br>';
}Class Cls{
Public $A='<br>[該內容來自class]<br>';
Function __construct() {
Echo '<br>---------<br>';
Return $this->A;
}
}
http://download.csdn.net/detail/sibang/4671085
但是这个惯性思维现在已经完全打破了,如果高手们能够把这个思路给进一步的完善一下的话,估计以后的php执行速度会上好几个台阶的.
这个思路的完整演示代码下载地址是:http://download.csdn.net/detail/sibang/4671085
我觉得这样做其实比直接new一个对象要慢,虽然我还没有去测试过。
至于靠这样做能保持一个持久连接,是不可能的