我刚刚获得了中型项目的服务端。前者通过开发引用实际 “databaseonnection.php文件有他所有的功能视为独立的PHP脚本,而不是类(func1.php,func2.php等)......所有这些“功能”作出mysqli_connect
参考。这是每次运行任何脚本时创建一个新连接(每次我必须调用一个函数),而且我不想这样做。我一直在考虑建立一个长期的联系,但是我担心这个项目每天都会越来越多地越来越多地失去。那么,有没有人遇到类似的情况?处理我与数据库的连接的最佳方式是什么?任何建议将不胜感激。PHP - 有多个连接时连接数据库的最佳方法
回答
从文档的mysql_connect。如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新链接,而是会返回已打开链接的链接标识符。
谢谢。这已经过去了我的头! – dudemanbearpig
请记住'mysql_connect()'是折旧为php版本5.5.0,并且在7.0.0版本中被删除,改用'mysqli_connect()' – assetCorp
编辑:对不起,我以为你想连接的帮助。除了将所有这些“功能”移动到仅用于连接的文件之外,没有其他办法。
我创造一个建立我的PDO连接,然后一个con.php文件包括文件的任何地方你希望使用的连接下面是一个PDO连接底座:
$PDO = new PDO("mysql:host=localhost;dbname=dbname", "user_name", "password");
这是我的使用注意事项PDO对象进行准备查询。有以下比你需要更多,但祝你好运。
在需要连接你的PHP文件: 1:包括( 'con.php');
2: $datas = $PDO->prepare(SELECT * FROM table WHERE title LIKE :searchquery);
// prepare method creates and returns a PDOstatment object (print_r($datas);) which contains an execute() method
// PDOstatment object has its own methods ie. rowCount()
// $datas->bindValue(':search', '% . $search . %',)
// Optional - Manually bind value. see http://php.net/manual/en/pdostatement.bindparam.php
3: $datas->execute(array(':searchquery' => $searchquery . '%'));
// pass in values that need to be bound AND EXECUTE.
// There are 17 ways to "fetch" data with the PDO object.
4: $datas-fetchALL(PDO::FETCH_OBJ);
附近手柄上的PDO连接:
$PDO = null;
这需要重新设计整个项目... – dudemanbearpig
是的,但是你必须重新设计整个项目,重新使用非常过时的数据库连接功能。 – BenRacicot
我想你会感到非常的使用PDO
,而不是老MYSQL
功能例如更好mysql_connect
。它的界面更健壮。
下面是基本的代码来做到这一点:
$db_handle = new PDO("mysql:host=".$db_host.";dbname=".$db_name.";port=".$db_port."", $db_username, $db_password, $connect_options);
其中$db_handle
是代表数据库连接的PDO对象,$db_host
是你的主机名[通常是本地主机] $db_name
是你的数据库的名称,$db_port
被数据库端口号一般3306] $db_username
和$db_password
是你的数据库的用户访问凭据,$connect_options
是可选的驱动程序特定的连接选项。
要启用持续连接,你需要打开连接前的驱动程序特定的连接选项来设置它:$connect_options = array(PDO::ATTR_PERSISTENT => true);
然后执行前面的数据库连接代码。
您可以从这里的PHP文档中获得更多信息:http://www.php.net/manual/en/pdo.construct.php和。
关于创建持久连接,我建议关闭在脚本末尾打开的每个数据库连接(当然,在所有数据库操作之后),通过取消数据库句柄:$db_handle = NULL;
。无论您是否打开持久连接,您都应该这样做。这听起来反直觉,但我相信你应该释放任何数据库资源,当你的脚本完成。
对于大多数应用程序来说,[从我的经验]做这些性能的缺点是微不足道的。这显然是一个值得商榷的说法,你也可能会发现,在这方面进一步明确自己的战略以下链接有用:
编码愉快!
如果你有非常复杂的工程,需要大的预算重新设计,并且更喜欢很简单的改动,然后
1)mysqli_connect 2留)移动数据库连接头你的脚本。 3)删除该函数的函数databse close()。 4)删除连接链接变量,它不需要单个数据库。 5)关闭页脚末尾的数据库。
通过这种方式,数据库连接在启动脚本时建立,在所有查询之后,它将在页脚上关闭。您的服务器可以使用Keepalive方法处理连接而无需关闭/重新打开。基本上默认的保活值是30到90秒。
- 1. 在php中连接数据库的最佳方法是什么?
- 2. 使用pdo连接到两个数据库的最佳方法
- 3. 在Laravel中连接多个数据库的最佳方式
- 4. 在PHP连接MySQL数据库的最佳方式
- 5. 在php中实现数据库连接的最佳方式
- 6. 数据库连接的最佳途径?
- 7. 通过多个文件(PHP)连接到mysql数据库的最有效方法
- 8. php - 与数据库的多个连接
- 9. 高流量连接的最佳数据库连接字符串?
- 10. Sqlite数据库连接最佳实践
- 11. 最佳数据库连接池大小
- 12. 数据库连接最佳实践
- 13. Android数据库连接最佳实践
- 14. 用php连接多个mysql数据库
- 15. 多个数据库连接
- 16. 多个数据库连接
- 17. 多个数据库连接
- 18. SQL连接来自多个数据库连接的多个表
- 19. 最佳方式多到很多连接
- 20. WCF数据库连接:只有一个数据库连接
- 21. 连接数据库的最新方式
- 22. Codeigniter:具有不同数据库连接的不同方法(多个数据库连接)
- 23. PHP:最有效的方法来使多个fsockopen();连接?
- 24. 做递归连接的最佳方法?
- 25. 监控连接的最佳方法
- 26. DB连接的最佳方法
- 27. 在C#中处理多个数据库连接的最佳方式是什么
- 28. 与POG的多个数据库连接
- 29. 无法连接数据库
- 30. 在c#中连接数据库的最佳方式是什么?
'mysql_ *'不推荐使用函数。使用'PDO'或'mysqli'。 – ops
原来的方法听起来很“正常”,你确定你知道你提出的改变的含义吗? – 2013-08-06 21:14:03
@Dagon我不想打开一个新的连接,每次我必须调用一个函数... – dudemanbearpig