gpt4 book ai didi

php - 使用php检查多个数据库和多个表的数据

转载 作者:行者123 更新时间:2023-11-29 10:19:22 25 4
gpt4 key购买 nike

我正在尝试编写一个代码来检查具有相似表的多个数据库中的数据。所以我创建了一个数据库和表数组,我想检查其中的数据是否存在,如下所示

$DatabaseDetails=array(
array('DatabaseName'=>'database1','TableName'=>'table1'),
array('DatabaseName'=>'database2','TableName'=>'table2'),
array('DatabaseName'=>'database3','TableName'=>'table3')
);

然后我尝试了一些代码,如果它在第一个数据库中找不到数据,它会移动到第二个数据库,依此类推,直到找到其他数据“打印数据库中没有数据”,但我没有得不到预期的结果。我是 php 新手,所以不太了解。因此,我们非常感谢任何帮助,并提前感谢您。我的代码如下。

<?php

class FindData{
public $DatabaseDetails=array(
array('DatabaseName'=>'database1','TableName'=>'table1'),
array('DatabaseName'=>'database2','TableName'=>'table2'),
array('DatabaseName'=>'database3','TableName'=>'table3')
);

public function SqlData(){
$i=0;
$count=count($this->DatabaseDetails);
$email="ileee@example.com";
$con=mysqli_connect('localhost','root','',$this->DatabaseDetails[$i]['DatabaseName']);
$sql="select * from ".$this->DatabaseDetails[$i]['TableName']." where email='".$email."'"
;
$run=$this->Data(mysqli_query($con,$sql));
if(strpos($run,'No data')!==false){
$i+=1;
}else{
echo $run;
}
}

public function Data($run){
if($run){
$num=mysqli_num_rows($run);
if($num>=1){
return "Data is in presented";
}else{
return "No data";
}
}
}

}
$obj=new FindData();
$obj->SqlData();

?>

最佳答案

您没有循环数据库

public function SqlData(){
$i=0;
$count=count($this->DatabaseDetails);
$email="ileee@example.com";
$con=mysqli_connect('localhost','root','',$this->DatabaseDetails[$i]['DatabaseName']);
$sql="select * from ".$this->DatabaseDetails[$i]['TableName']." where email='".$email."'"
;
$run=$this->Data(mysqli_query($con,$sql));
if(strpos($run,'No data')!==false){
$i+=1;
}else{
echo $run;
}
}

即使您在外部多次调用此函数,也不会更改 $i 值。因此您只使用 $i=0 数据库。

您尝试在此处更新

if(strpos($run,'No data')!==false){
$i+=1;
}

但是因为方法中没有循环,而且是局部值。要么没有完成迭代,要么在每次调用该方法时将 $i 的值重置为 0。正如我所说,不清楚该方法是被调用一次还是多次来提供迭代。无论哪种情况都没关系。

因此有 3 种方法可以解决此问题。

  • 在方法内添加循环
  • 传入 $i 的值作为参数(多个外部调用)
  • 传入 $i 的值作为参数(递归调用)

有道理。

关于php - 使用php检查多个数据库和多个表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590599/

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