【问题标题】:Table exists in PHPmyAdmin but does not appear using SHOW TABLES query in PHP表存在于 PHPmyAdmin 中,但未在 PHP 中使用 SHOW TABLES 查询出现
【发布时间】:2014-09-25 20:12:13
【问题描述】:

我是 stackoverflow 的新用户,我确实搜索了类似的问题,我发现了很多,但没有一个以对我有帮助的方式得到解决。所以这就是我问这个的原因,即使它可能是重复的。 (例如,这似乎与我遇到的问题相同:MySQL table exists on server but cannot access it from PHP

我使用 PHPmyAdmin 在我的数据库(测试)中创建了一个表(成员)。如果我在那里执行 SQL 查询以显示 TABLES FROM 测试,则会列出表“成员”。但是,PHP 似乎无法访问它。这是我的文件 access_test_table.php:

<html>
<body>

Testing.<br>

<?php

$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="members"; // Table name 

echo "The host is $host<br/>";
echo "The username is $username<br/>";
echo "The password is $password<br/>";
echo "The db name is $db_name<br/>";
echo "The table name is $tbl_name<br/>";

// Connect to server and select databse.
$con=mysqli_connect("$host","$username","$password","$db_name");

// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
echo "<br/>";
}
else {
echo "Connected to database.<br/>";
}

//Want to show the tables in the database
$query_1="SHOW TABLES FROM $db_name'";
$result_q1 = mysqli_query($con,$query_1);

if (!mysqli_query($con,$query_1))
  {
  echo("Errorcode: " . mysqli_errno($con));
  echo "<br/>";
  }
else {
  echo "The following tables are in the database: " . $result_q1;
  echo "<br/>";
}

mysqli_close($con);
echo "Connection closed.";

?>
</body>
</html>

我检查了“用户名”是否与用于创建表的用户相同,并且具有访问它的正确权限。我还更新为不使用 mysql_* 命令,而是使用 mysqli_* 命令。最后,我尝试使用mysqli_multi_query,但结果是一样的。这是页面上代码的输出:

测试。 主机是本地主机 用户名是用户名 密码是密码 数据库名称是 test 表名是成员 连接到数据库。 错误代码:1064 连接已关闭。

有人可以建议我如何解决这个问题吗?谢谢!

【问题讨论】:

  • 我不确定您的问题是什么,但您在$query_1="SHOW TABLES FROM $db_name'"; 中有一个额外的引用' 将其更改为$query_1="SHOW TABLES FROM $db_name"; - 仅此一项就会导致错误。
  • 我假设您的问题只是上述评论中提到的语法错误,但还要确保您的“用户名”用户具有能够使用 SHOW TABLES FROM ... 查询的相关权限。如果用户无权访问任何表,则它们都不会显示在结果集中
  • 您好,是的,我认为这是带有额外引号的部分。我尝试使用数据库的名称,而不是保存它的变量,它可以工作。 $query_1="显示来自 $db_name 的表";但似乎不起作用。但是, $query_1="SHOW TABLES FROM " 。 $db_name;是的。
  • 我应该如何表明这已经解决了?
  • @RKD314 你可以回答你自己的问题,指出这个错字。

标签: php mysql phpmyadmin


【解决方案1】:

从查询中删除'

$query_1="SHOW TABLES FROM $db_name'";

所以它看起来像这样:

$query_1="SHOW TABLES FROM $db_name";

感谢 Fred(发布为社区 Wiki 以结束问题)

【讨论】:

    猜你喜欢
    • 2011-10-06
    • 2012-04-04
    • 1970-01-01
    • 2013-02-05
    • 2012-07-23
    • 2014-03-21
    • 2012-07-14
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多