如何使用php脚本从一个mysql数据库中的所有表中获取具有特定ID的所有行的json输出结果?

如何使用php脚本从一个mysql数据库中的所有表中获取具有特定ID的所有行的json输出结果?,php,mysql,sql,csv,Php,Mysql,Sql,Csv,我正在尝试编写一个脚本,该脚本将从同一个mysql数据库中的所有表返回具有相同ID的所有记录,作为json数据 <?php $db_hostname = 'localhost'; $db_database = ''; $db_username = ''; $db_password = ''; $db_server = mysqli_connect($db_hostname, $db_username,$db_password); if (!$db_server) die("Unabl

我正在尝试编写一个脚本,该脚本将从同一个mysql数据库中的所有表返回具有相同ID的所有记录,作为json数据

<?php


$db_hostname = 'localhost';
$db_database = '';
$db_username = '';
$db_password = '';

$db_server = mysqli_connect($db_hostname, $db_username,$db_password);
if (!$db_server) die("Unable to connect to MySQL:".  mysql_error());
mysqli_select_db($db_database) or die("Unable to select  database:". mysql_error()); 

date_default_timezone_set("Europe/Dublin");

// Go to the correct directory
$directory= '/path/to/my/data/';
chdir ($directory ) ;

// Loop through the file names and remove the .csv extension
foreach (glob("*.csv") as $filename) 

 {  
        $filename = substr($filename,0,strlen($filename)-4);
        echo $filename . "\n";
        $counter = $counter + 1;

}

// If there are no files, exit the script
if ( $counter == 0) {exit();}
// Now for each filename with no extension run mysql query
    foreach ($filename as $table_name)
    {
         $db_server = mysqli_connect($db_hostname, $db_username,$db_password);
         mysqli_select_db($db_database) or die("Unable to select database:". mysql_error()); 
         $myQuery = 'SELECT * FROM $table_name WHERE  id="1";'
    }

   // get results into json
   $result = mysqli_query($db_server,$myQuery);

   $data = array();
   foreach ($result as $row) {
   $data[] = $row;
   }

   mysqli_close($db_server);

   echo json_encode($data);

   ?> 
  • 下面我试图首先从本地目录中获取所有表名(这是因为mysql数据库中的所有表都是基于该目录中的所有文件名创建的)
  • 接下来,我将尝试循环遍历目录中的所有文件,并使用select查询ping mysql数据库
  • 将查询结果转换为json数据

    <?php
    
    
    $db_hostname = 'localhost';
    $db_database = '';
    $db_username = '';
    $db_password = '';
    
    $db_server = mysqli_connect($db_hostname, $db_username,$db_password);
    if (!$db_server) die("Unable to connect to MySQL:".  mysql_error());
    mysqli_select_db($db_database) or die("Unable to select  database:". mysql_error()); 
    
    date_default_timezone_set("Europe/Dublin");
    
    // Go to the correct directory
    $directory= '/path/to/my/data/';
    chdir ($directory ) ;
    
    // Loop through the file names and remove the .csv extension
    foreach (glob("*.csv") as $filename) 
    
     {  
            $filename = substr($filename,0,strlen($filename)-4);
            echo $filename . "\n";
            $counter = $counter + 1;
    
    }
    
    // If there are no files, exit the script
    if ( $counter == 0) {exit();}
    // Now for each filename with no extension run mysql query
        foreach ($filename as $table_name)
        {
             $db_server = mysqli_connect($db_hostname, $db_username,$db_password);
             mysqli_select_db($db_database) or die("Unable to select database:". mysql_error()); 
             $myQuery = 'SELECT * FROM $table_name WHERE  id="1";'
        }
    
       // get results into json
       $result = mysqli_query($db_server,$myQuery);
    
       $data = array();
       foreach ($result as $row) {
       $data[] = $row;
       }
    
       mysqli_close($db_server);
    
       echo json_encode($data);
    
       ?> 
    
    
    

  • 这是什么语言?@Dharman,第一部分实际上是我的shell脚本的一部分,而另一部分是常规php脚本。我添加了这个来演示我在循环中获取所有没有扩展名的文件名的目的,这样我就可以运行多个查询并从MySQL获取结果。你能帮忙吗?谢谢将我的代码编辑为100%php。然而,当我在我的服务器上运行它时,它只给我一个空页面。有什么想法吗?这个代码有很多问题。请看,我建议使用PDO而不是mysqli。看起来你从互联网上复制了一些非常糟糕的例子。不要用它