Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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_Pdo - Fatal编程技术网

PHP中类抽样的孔隙度

PHP中类抽样的孔隙度,php,mysql,pdo,Php,Mysql,Pdo,你好,亲爱的 也许我为这次讨论选择的主题可能不太合适,但让我们开始讨论这个问题 在PHP中,我有一个名为DB的类,在这个类中,我将数据库关系写入连接到数据库的: classdb{ 私有静态$\u dbConnect=null, $dbUser=DB\u用户, $dbPass=DB_PASS, $dbName=DB\u名称, $dbTable=null; 函数构造($dbTable){ self::$dbTable=$dbTable; 如果(!isset(self:$_dbConnect)| |

你好,亲爱的 也许我为这次讨论选择的主题可能不太合适,但让我们开始讨论这个问题

在PHP中,我有一个名为
DB
的类,在这个
类中,我将数据库关系写入连接到数据库的

classdb{
私有静态$\u dbConnect=null,
$dbUser=DB\u用户,
$dbPass=DB_PASS,
$dbName=DB\u名称,
$dbTable=null;
函数构造($dbTable){
self::$dbTable=$dbTable;
如果(!isset(self:$_dbConnect)| | self:$_dbConnect==null){
试一试{
self:$_dbConnect=new PDO(“mysql:host=localhost;dbname=“.self::$dbname,self::$dbUser,self::$dbPass”);
$isResult=self:$\u dbConnect->prepare(“从.self::$dbName.显示表,如${dbTable}”);
如果($isResult->rowCount()==0){
$isQuery=“”;
if($dbTable==DB_TABLES['user'])){
$isQuery=”“;//写入用户表查询
}else if($dbTable==DB_TABLES['admin'])){
$isQuery=”“;//写入管理表查询
}
self:$\u dbConnect->prepare($isQuery);
}
}捕获(PDO$e){
抛出$e->getMessage();
}
}
}
私有函数ifString($strings=[],$sep='&'){}
私有函数stringSep($strings=[]){}
公共函数existValue($strings=[]){}
公共函数insertTB($data=[],$ifArray=[]){}
公共函数getDataTB($ifArray=[]){}
公共函数updateTB($data=[],$ifArray){}
公共功能删除TB($ifArray){}
公共函数getAllRecords($ifArray=[]){}
函数_udestruct(){
if(isset(self:$_dbConnect)| | self:$_dbConnect!=null){
self:$\u dbConnect=null;
}
}
}
但问题是因为我在
\uu construct
中定义了数据库连接,所以当我同时运行这个
类的两个实例时,我遇到了麻烦:

$DB['user']=newdb(DB_表['user']);
$DB['admin']=新的DB(DB_表['admin']);
问题是,现在当我尝试使用
$DB['user']
时,事情都是在
$DB['admin']
上完成的

有解决方案吗


注意:如果我问的问题有点糟糕,我道歉,因为我是波斯语

删除
\u dbConnect
静态声明。静态意味着无论创建了多少个类实例,变量定义一次

private $_dbConnect = null,

如果
$\u dbConnect
不是静态的,对
self::$\u dbConnect
的引用应替换为
$this->$\u dbConnect

不要忘记将所有出现的
self::$
也替换为
$this->
。问题已经解决,不过多亏了用户Magnus Erikson,为什么不创建一个PDO实例,然后将查询传递给它呢?我看不出创建多个实例有什么意义?(由于使用的是
static
),因此当前正在用新的覆盖旧的。