表存在于 PHPmyAdmin 中,但未在 PHP 中使用 SHOW TABLES 查询出现
Posted
技术标签:
【中文标题】表存在于 PHPmyAdmin 中,但未在 PHP 中使用 SHOW TABLES 查询出现【英文标题】:Table exists in PHPmyAdmin but does not appear using SHOW TABLES query in PHP 【发布时间】:2014-09-25 20:12:13 【问题描述】:我是 *** 的新用户,我确实搜索了类似的问题,我发现了很多,但没有一个以对我有帮助的方式得到解决。所以这就是我问这个的原因,即使它可能是重复的。 (例如,这似乎与我遇到的问题相同: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 你可以回答你自己的问题,指出这个错字。
【参考方案1】:
从查询中删除'
:
$query_1="SHOW TABLES FROM $db_name'";
所以它看起来像这样:
$query_1="SHOW TABLES FROM $db_name";
感谢 Fred(发布为社区 Wiki 以结束问题)
【讨论】:
以上是关于表存在于 PHPmyAdmin 中,但未在 PHP 中使用 SHOW TABLES 查询出现的主要内容,如果未能解决你的问题,请参考以下文章
Localhost端口已更改,但未在WordPress站点中反映出来
PHP XML (DOM) 扩展:已安装但未在 centos 的 phpinfo 中列出
Xdebug 已安装但未在 Xampp 的 Phpinfo 中显示
获取 Websocket 错误但未在代码中使用 Websocket