我最近一直在检修我为我工作的公司建立的网站。因为我在一年多前开始这个项目,所以我的编码技能提高了很多,我想使网站跟上速度。我对该项目的主要关注点是安全性和速度。我一直在做的一件事是更改我所有的 PHP 连接以确保它们安全且快速。这是我从数据库中提取内容时通常遵循的格式:
<?php
//Connect to MySQL
require_once('includes/config.php');
$link = mysql_connect($host, $user, $pass);
if(!$link) {
die('Server connection failed. Please refresh the window. If this problem persits, please send an e-mail to <me>');
}
$db = mysql_select_db($database);
if(!$db) {
die("Unable to select database");
}
$qry="SELECT * FROM <table> WHERE Category='<parameter>' ORDER BY substr(`P/N`,1,4) ASC";
$result=mysql_query($qry);
while($row = mysql_fetch_array($result))
{
echo "
//Output code
";
}
?>
首先,存储连接变量(如 MySQL 用户名/密码)的最佳方式是什么?在上面的代码中,我使用了一个 require_once('includes/config.php')
,它包含了我所有的服务器变量。这是一种安全的方法吗?或者有更好的方法吗?
其次,我应该更好地管理内存吗?我正在阅读本网站上关于 mysql_close()
的 PHP 文档和问题,我得出的结论是我并不真的需要它。但是,最近我遇到了很多失败的连接。
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server
这个错误有没有可能是我的编码技术不好造成的?还是更可能选择我们的托管公司?
最佳答案
您可以将您的登录名和密码存储在 Web 根目录之外,并将它们包含在 require_once()
中。
您可以使用 mysql_pconnect()
来使用持久连接,这样以后的查询将只使用打开的连接,而不是尝试重新连接。理想情况下,您希望使用缓存层尽可能多地消除这些连接,这样用户只会访问缓存,而您的缓存编写器只会访问数据库。然后,您设置一个 cron 或事件驱动系统,以合理的时间间隔更新缓存,以根据应用程序的需要控制负载。
关于php - 优化 PHP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521207/