繁体   English   中英

PHP - MySQL - 如何获取表列名称,具有受限的数据库权限(网络托管服务器)?

[英]PHP - MySQL - How to get table column names, with restricted database permissions (web hosting server)?

在带有 MySQL 的 web 托管服务器上使用:PHP 7

我需要获取 MySQL 数据库表的表列(字段)名称。 我试过 SHOW、DESCRIBE、SELECT.. FROM INFORMATION_SCHEMA 等,但似乎没有任何效果,因为网络托管 MySQL 数据库用户不是“root”,所以它限制了这些功能。 如果没有这样的访问权限来访问数据库元数据,那么其他人如何在 Web 托管场景中为他们的 PHP 代码解决这个问题?

这是我目前的代码,它适用于本地主机 MySQL(因为我是 root 用户),但不适用于 web 托管数据库(非 root 用户)。

$query = "SELECT * FROM " . $dbtable . " LIMIT 1";
$result = mysqli_query($dblink, $query);
if ($result) {
    $finfo = $result->fetch_fields();
    foreach ($finfo as $field) {
       $colnamelist[] = $field->name;
    }
}

在上面的代码中, fetch_fields()没有返回任何内容,尽管查询返回了被请求的 1 行。

提前致谢!

我发现这个问题是由 Linux/UNIX 网络托管服务器上的 object(表和列)名称区分大小写引起的。 我将在我的 PHP 代码中解决这个问题。

编辑:我已经通过使用将所有 object 名称设置为大写的新脚本重新创建 MySQL 数据库成功地解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM