显示给定MySQL数据库中的所有表

时间:2017-03-26 03:44:53

标签: php mysql

我正在尝试使用php显示给定MySQL数据库中的所有表。 我对这一切都很新,但找不到解决方案。继续给出错误'找不到文件或目录'。

任何能指出我的错误的人都可以吗? 非常感谢!

<% @prayers.each do |p| %>
  <%= p.date %> <%= p.time %>
  <%= simple_form_for @prayers do |f| %>
    <%= f.input :name %>
  <% end %>
<% end %>

3 个答案:

答案 0 :(得分:2)

您正在使用连接到数据库,但使用折旧的来查询数据库。

$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);

$result = mysql_query($sql);
while ($row = mysql_fetch_row($result)){}

mysql_free_result($result);

您应该使用mysqli_query()mysqli_fetch_array()代替。

它有点复杂但是mysql被减少并删除为PHP 7所以没有选择继续前进。检查PDO屁股。我个人去,但大多数人说更直观。

看起来应该更像是:

$result = mysqli_query($conn,$sql);
if(!$result){
  die('MySQL error: ' . mysqli_error($conn));
}

while ($row = mysqli_fetch_row($result)) {
    echo "- {$row[0]}\n </br>";
}

答案 1 :(得分:2)

使用以下查询,

$sql = "SELECT table_name
           FROM information_schema.tables
        WHERE table_schema = 'paperlessdb'";

我们从information_schema db获取数据,该数据存储有关我们数据库的元数据。

答案 2 :(得分:2)

首先下定决心,使用程序或面向对象。不是两者兼而有之,因为它令人困惑。为避免这一切,请改为使用

现在正确连接到数据库,您可以在自动连接数据库时选择数据库:

const DB_DATABASE = 'paperlessdb';

$conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

// Check connection
if ($conn->connect_error) {
    die("Connection with the database failed: </br>" . $conn->connect_error);
}

if($result = $conn->query('SHOW TABLES')){
  while($row = $conn->fetch_array($result)){
    $tables[] = $row[0];
  }
}

print_r($tables);