我是 stackoverflow 的新用户,我确实搜索了类似的问题,发现了很多,但没有一个以对我有帮助的方式得到解决。所以这就是为什么我要问这个,尽管它可能是重复的。 (例如,这似乎与我遇到的问题相同:MySQL table exists on server but cannot access it from PHP)
我使用 PHPmyAdmin 在我的数据库(测试)中创建了一个表(成员)。如果我在那里执行 SQL 查询来 SHOW TABLES FROM test,则会列出表“members”。不过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 表名是members 连接到数据库。 错误代码:1064 连接已关闭。
有人可以建议我如何解决这个问题吗?谢谢!
最佳答案
从查询中删除 '
:
$query_1="SHOW TABLES FROM $db_name'";
所以它看起来像这样:
$query_1="SHOW TABLES FROM $db_name";
感谢 Fred(作为社区 Wiki 发布以结束问题)
关于php - 表存在于 PHPmyAdmin 中,但在 PHP 中使用 SHOW TABLES 查询未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100299/