加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在php中有效地连接到mysql,而无需重新连接每个查询

发布时间:2020-12-13 14:01:58 所属栏目:PHP教程 来源:网络整理
导读:我每次学习关于php的新东西时都必须重写代码,就像一个 mysql连接不能在一个会话中作为一个句柄一样传递的事实. 你在项目中如何实现mysql连接?很多人提出“连接池”,但是在阅读手册后,我仍然迷失了.就像:“连接池是mysql_pconnect
我每次学习关于php的新东西时都必须重写代码,就像一个 mysql连接不能在一个会话中作为一个句柄一样传递的事实.

你在项目中如何实现mysql连接?很多人提出“连接池”,但是在阅读手册后,我仍然迷失了.就像:“连接池是mysql_pconnect!” – 我:“和…?现实中有什么不同吗?你可以在会话中传递一个mysql_pconnect吗?为什么这个看似神秘的光环?”

让我解释一下我的情况.我有一个名为“query1”的函数:

function query1($query)
{
    $db = new mysql(HOST,USER,PASS,DBNAME);
    $result = $db->query($query);
    $db->close();
    return $result;
}

这似乎是一种查询数据库的浪费和低效的方式(特别是因为您需要mysql_real_escape_string等函数的mysql句柄).要做什么正确的表格?有人可以帮帮我吗?

谢谢,我真的很感激一个诚实的答案.

通常,一旦页面加载就会发生连接. AKA
class Database{
    public function connect()
    {
         $this->connection = mysql_connect();
    }

    // This will be called at the end of the script.
    public function __destruct()
    {
        mysql_close($this->connection);
    }

    public function function query($query)
    {
        return mysql_query($query,$this->connection);
    }
}
$database = new Database;
$database->connect();

$database->query("INSERT INTO TABLE (`Name`) VALUES('Chacha')");

基本上,您打开页面开头的连接,在最后一页关闭它.然后,您可以在页面中进行各种查询,而不必对连接执行任何操作.

您甚至可以在构造函数中执行mysql_connect,如Erik所示.

要使用上述使用全局变量(不建议,因为它创建全局状态),你会做一些类似的事情

Global $db;

$db = new Database;
// ... do startup stuff

function doSomething()
{
    Global $db;
    $db->query("Do Something");
}

哦,没有人提到你不必传递一个参数.只需连接

mysql_connect();

那么mysql_query将只使用最后的连接,无论范围如何.

mysql_connect();

function doSomething()
{
    mysql_query("Do something");
}

根据评论:

I think you should use mysql_pconnect() instead of mysql_connect(),because mysql_connect() doesn’t use connection pooling. – nightcoder

你可能想考虑你是否使用mysql_connect或mysql_pconnect.但是,您仍然应该只在每个脚本连接一次.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读