gpt4 book ai didi

PHP 防止多个 MySQL 连接

转载 作者:行者123 更新时间:2023-11-30 00:07:48 25 4
gpt4 key购买 nike

我有一个大型程序风格的 php/mysql 网站,它分为许多不同的文件。在每个文件中,我包含我的 dbconn.php,以确保数据库连接可用。

看起来像这样:

index.php

<?php 
include_once ('header.php');
include_once ('nav.php');
include_once ('content.php');
include_once ('sidebar.php');
include_once ('footer.php');
?>

在每个文件中,我通过 include_once 调用其他几个文件。所以我总共想出了大约 30 个不同的文件。

每个文件都以以下内容开头:

include_once($_SERVER['DOCUMENT_ROOT'].'/dbconn.php');

由于我使用的是 include_once,dbconn.php 不应加载多次,但最近我收到以下 php 警告。

PHP Warning:  mysqli_connect(): (HY000/1226): User 'username' has exceeded the 'max_user_connections' resource (current value: 20) in /var/www/html/dbconn.php on line 10

我的 dbconn.php 看起来像这样:

<?php
$host = "localhost";
$user = "username";
$pass = "password";
$db = "dbname";

if(!mysqli_thread_id($con)){
$con = mysqli_connect($host, $user, $pass, $db);
mysqli_set_charset($con, 'utf8');
}
unset($host,$user,$pass,$db);
?>

因此需要进行双重检查。如果已经有一个打开的 mysql 连接,则该文件基本上不执行任何操作。

我做错了什么?为什么我会收到此 php 警告以及如何减少 mysql 连接量?

最佳答案

基本上,并不是来自单个页面的不同调用导致了问题。事实上,您目前有多个打开的连接。

确保在连接达到目的后关闭它们。

此外,尽量避免您当前拥有的那种结构,将所有与数据库相关的内容包含在一个文件中,然后仅在页面上包含一次。

关于PHP 防止多个 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com