Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 内存泄漏或连接未关闭_Php_Mysql_Database - Fatal编程技术网

Php 内存泄漏或连接未关闭

Php 内存泄漏或连接未关闭,php,mysql,database,Php,Mysql,Database,我有三个文件index.php,DB_函数,DB_Connect通过mysql服务器连接。但响应非常慢,根据托管服务器人员的说法,任务几乎正在运行 index.php DB_Function.php 以下是我的建议 1.-检索数据后始终关闭连接 2.-如果您希望这样的查询只有一行 "SELECT * FROM userDetails WHERE email = '$email' AND password = '$password' 您应该在查询末尾添加LIMIT 1,以检索唯一可能的行 3

我有三个文件index.php,DB_函数,DB_Connect通过mysql服务器连接。但响应非常慢,根据托管服务器人员的说法,任务几乎正在运行

index.php

DB_Function.php


以下是我的建议

1.-检索数据后始终关闭连接

2.-如果您希望这样的查询只有一行

"SELECT * FROM userDetails  WHERE email = '$email' AND password = '$password' 
您应该在查询末尾添加
LIMIT 1
,以检索唯一可能的行

3.-向表中添加索引


4.-使用mysqlslap测试您的性能

您是否正在调用DB_Connect::close();有吗?没有,我应该在DB_函数析构函数中使用它吗?hm PHP通常应该在脚本结束时关闭连接,即使没有交互。你能发布你的实际查询吗$db->getUserByEmailAndPassword($email,$password);和$db->getUserByuserid($uservalue);我已经更新了代码请检查您应该检查表
userDetails
是否在
email
上有索引,以及
carrieinfo
是否在
userid
上有索引。如果不是,mysql必须在每次进行查询时读取整个数据库。此外,您可能希望使用哈希函数保存密码。
    <?php

class DB_Functions {

    private $db;

    //put your code here
    // constructor
    function __construct() {
        require_once 'DB_Connect.php';
        // connecting to database
        $this->db = new DB_Connect();
        $this->db->connect();
    }

// destructor
    function __destruct() {

    }

 /**
 * Get user by email and password
 */
public function getUserByEmailAndPassword($email, $password) {
    $result = mysql_query("SELECT * FROM userDetails  WHERE email = '$email' AND password = '$password'") or die(mysql_error());
    // check for result 
    $no_of_rows = mysql_num_rows($result);
    if ($no_of_rows > 0) {
        $result = mysql_fetch_array($result);
            return $result;

    } else {
        // user not found
        return false;
    }
}

 /**
 * Get user by email and password
 */
public function getUserByuserid($uservalue) {
    $result = mysql_query("SELECT * FROM CalorieInfo  WHERE userid= '$uservalue' ") or die(mysql_error());
    // check for result 
    $no_of_rows = mysql_num_rows($result);
    if ($no_of_rows > 0) {
        $result = mysql_fetch_array($result);

            return $result;

    } else {

    $calresult = mysql_query("INSERT INTO CalorieInfo( userid,startdate, createddate, updateddate,createdby,updatedby) VALUES('$uservalue' ,NOW(), NOW(), NOW(),'$uservalue','$uservalue')");

     if ($calresult) {
        $id = mysql_insert_id();
        $calresult = mysql_query("SELECT * FROM CalorieInfo WHERE id = $id");
        return mysql_fetch_array($calresult);
    }else{
        // user not found
        return false;
        }
    }
}


?>
<?php
class DB_Connect {

    // constructor
    function __construct() {
       //this->connect();
    }

    // destructor
    function __destruct() {
    //closing db 

    }

    // Connecting to database
    public function connect() {
        require_once 'config.php';
        // connecting to mysql
        $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());
        // selecting database

        mysql_select_db(DB_DATABASE) or die(mysql_error());

        // return database handler
        return $con;
    }

    // Closing database connection
    public function close() {
        mysql_close();
    }

}

?>
"SELECT * FROM userDetails  WHERE email = '$email' AND password = '$password'