Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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查询多个SQL数据库并返回结果之和_Php_Sql - Fatal编程技术网

PHP查询多个SQL数据库并返回结果之和

PHP查询多个SQL数据库并返回结果之和,php,sql,Php,Sql,我正在尝试创建一个页面,用户可以在其中输入用户名并返回其总时间,用户名的输入是我稍后将解决的问题,但目前我很难确定如何对三个数据库执行查询并显示所有三个查询的总和。这就是我到目前为止得到的,我知道它没有任何功能,但我也知道我不知道我在做什么,所以任何帮助都将不胜感激 <?php //Establish Database Connections try { $survivaldb = new PDO('mysql:dbname=dbname;host=IP', 'username',

我正在尝试创建一个页面,用户可以在其中输入用户名并返回其总时间,用户名的输入是我稍后将解决的问题,但目前我很难确定如何对三个数据库执行查询并显示所有三个查询的总和。这就是我到目前为止得到的,我知道它没有任何功能,但我也知道我不知道我在做什么,所以任何帮助都将不胜感激

 <?php
//Establish Database Connections
try {
  $survivaldb = new PDO('mysql:dbname=dbname;host=IP', 'username', 'password');
  $creativedb = new PDO('mysql:dbname=dbname;host=IP', 'username', 'password');
  $skyblockdb = new PDO('mysql:dbname=dbname;host=IP', 'username', 'password');
} catch (PDOException $ex) {
  echo 'Connection failed: ' . $ex->getMessage();
}

//Query Playtime on each Database
//Survival
$stmt = $survivaldb->prepare("SELECT playtime FROM `stats_players` WHERE `name` LIKE `:username'");
$stmt->execute(array(':username' => exampleusername));
$row = $stmt->fetch();
//Creative
$stmt = $creativedb->prepare("SELECT playtime FROM `stats_players` WHERE `name` LIKE `:username'");
$stmt->execute(array(':username' => exampleusername));
$row = $stmt->fetch();
//SkyBlock
$stmt = $skyblockdb->prepare("SELECT playtime FROM `stats_players` WHERE `name` LIKE `:username'");
$stmt->execute(array(':username' => exampleusername));
$row = $stmt->fetch();
?>

看来你有了一个好的开始。您不需要在查询中使用记号,尤其不需要最后一个。
:username'
,请注意,最后一个记号实际上是错误的类型。我为您的创新而喝彩,因为您拥有合理的变量名并使用参数化/准备好的查询。每个
$row
(可以称之为survivalData或其他)是否包含各自数据库中的播放时间?如果是这样,您只需执行
$totalPlayTime=0在查询之前,对于每个查询,只需将获取的播放时间添加到总播放时间中。这是一个好主意,我相信$row可以做到(老实说,我真的不太知道这一切的作用),我会尝试一下!谢谢编辑:我不确定在哪里需要勾号,我会尝试不使用。你需要引用保留字,MySQL将解析这些字作为实际查询语言的一部分(如select、insert、delete、from)-有相当多的勾号,但其中大多数很少用作表/列名,因此你通常不需要