php - 优化 PHP 连接

标签 php mysql database-connection

我最近一直在检修我为我工作的公司建立的网站。因为我在一年多前开始这个项目,所以我的编码技能提高了很多,我想使网站跟上速度。我对该项目的主要关注点是安全性和速度。我一直在做的一件事是更改我所有的 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/

相关文章:

PostgreSQL:无法连接到服务器:端口 5432 上的 TCP/IP 连接

java - 获取JDBC连接失败;嵌套异常是 java.sql.SQLException : null

php - Kohana 与 CodeIgniter 有何不同?

php - iOS 尝试将位置更新发布到服务器

mysql - phpMyAdmin 不允许我存储小数

mysql - 在 mysql 中,对于四个连接字符串,最小池大小是多少?

javascript - 当值由该站点中的 javascript 设置时如何从外部网站获取值

javascript - 从 Javascript 调用 PHP 函数时出现问题

mysql - 当 MySQL 没有剩余空间时该怎么办?

mysql - 如何在 Jinzhu GORM 中创建 Left Join