Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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 在all项目中只有一个mysql连接_Php_Mysql - Fatal编程技术网

Php 在all项目中只有一个mysql连接

Php 在all项目中只有一个mysql连接,php,mysql,Php,Mysql,我想知道是否有一种方法可以让我始终打开一个连接到数据库中。 我在我的网站中使用以下代码: mysql类 class Mysql{ public static $Server = "localhost"; static $User = 'root'; static $Password = ''; static $DataBaseName = 'teca.v1'; static $Connection; static $DataBase; static $LoadConnection = 0;

我想知道是否有一种方法可以让我始终打开一个连接到数据库中。 我在我的网站中使用以下代码:

mysql类

class Mysql{
public static $Server   = "localhost";
static $User = 'root';
static $Password = '';
static $DataBaseName = 'teca.v1';
static $Connection;
static $DataBase;
static $LoadConnection = 0;
static $CharSet = "utf8";

static $TRANS =false;
static $TRSS  = array();

public function __construct(){
    if(Mysql::$LoadConnection==0){
        Mysql::$Connection = mysql_connect(Mysql::$Server,Mysql::$User,Mysql::$Password);
        Mysql::$DataBase   = mysql_select_db(Mysql::$DataBaseName,Mysql::$Connection);
        $charset=Mysql::$CharSet;
        mysql_query("SET NAMES $charset");
        Mysql::$LoadConnection=1;
    }
}
}
模范班

class Model extends Mysql{
protected $datamembers = array();
protected $PrimaryKey="Id";
protected $TableName ="Table";
public $UnProtectedExecute = FALSE;

public  function ReadyString($value)
{
    if($this->UnProtectedExecute == TRUE)
        return addslashes($value);
    else
        return $value;
}
public function __set($variable, $value){
    $this->datamembers[strtolower($variable)] = $value;
}

public function __get($variable){
    return $this->datamembers[strtolower($variable)];
}
我的一个目标是:

class LibraryFiles extends Model{
    public $TableName   = 'library_files';
}

但是我不知道这是不是正确的,只是这段代码为我的项目中的所有对象创建了一个连接?

您正在寻找的是一个PHP单例数据库类。使用下面的链接获得想法。我想我不必在这里重复所有的内容


您正在寻找的是PHP单例数据库类。使用下面的链接获得想法。我想我不必在这里重复所有的内容


你的设计没有多大意义。您应该为
MySQL
Model
创建单独的类。
MySQL
类应该实例化一次,并在整个脚本中使用。所以它应该只建立一个连接。
然后让
模型
使用
MySQL
类的实例对数据进行操作。

您的设计没有多大意义。您应该为
MySQL
Model
创建单独的类。
MySQL
类应该实例化一次,并在整个脚本中使用。所以它应该只建立一个连接。
然后让
Model
使用
MySQL
类的实例对数据进行操作。

是的,我的对象都继承自Model类和mysqlYes的模型,因此它调用其构造函数方法并创建MySQL连接。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,.yes,我的对象都是从model类继承的,而model是从mysqlYes继承的,因此它调用其构造函数方法并创建mysql连接。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,。单身不是一个很好的主意。他们倾向于将代码与单例代码紧密地结合在一起,随着时间的推移,单例代码很难维护。他们倾向于将代码与单例紧密耦合,随着时间的推移,维护起来会更加困难。