php - 在不知道列名的情况下获取 Mysql 结果

标签 php mysql

<分区>

由于我还在学习 PHP 和 MySQL,我想知道是否可以在不知道表名的情况下查询表。知道我正在查询的表和我想检索的列,我可以写类似

$book_title=$row['book_title'];

然后我可以稍后在脚本中使用结果变量。在每种情况下,每个图书类别表都会有一个名称不同的感兴趣列。我有几个正在运行查询的表。我能够通过使用一个始终评估为正确表名的变量来查询任何表,因为来自用户的所有输入都对应于数据库中的表,因此 $_POST super 全局将始终带有正确的表名。问题是我有一个

$variable=$row['column'];

在我事先不知道列名的情况下,即使我知道表名。

我的查询很简单,看起来像

query="select * FROM $book_categories WHERE id=$id";
$row = mysqli_fetch_array ($result);
$variable=$row['?'];

问号表示,我不知道该期待什么列,因为它的名称可以是数据库中表中的任何名称!

因为我有几个表,查询将在一个表上归零,但每个表中的列名各不相同,所以我希望能够使用一个查询来为我提供来自此类列的条目。

我希望我的问题很清楚,我不是在要求不可能的事情。如果它是模棱两可的,我想阐明(希望如此)。

最佳答案

我不确定你的意思,但可以通过键入索引(从 0 开始)来引用特定的列,如下所示:$row[0], $row[1]其中 0 表示第一列,1 表示返回记录集中的第二列。

示例: 如果您有这样的选择语句:

SELECT title, author FROM books

您可以使用 $row[0], $row[1] 引用这两列

如果您尝试获取 $row[2] 的值,您将获得一个未分配的值,因为记录集中只有两列(0 和 1)。

如果您有这样的选择语句:

SELECT * FROM book_categories

记录集返回三列,然后您可以使用 $row[0]、$row[1] 和 $row[2] 访问它们。 $row[3] 不存在,因为只有三列(0,1 和 2)

关于php - 在不知道列名的情况下获取 Mysql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035490/

相关文章:

php - 特色图片问题

java - 使用Mysql和IntelliJ IDEA java项目连接数据库的问题

mysql - (My)SQL 如何评估链式 LEFT/INNER JOIN?

mysql - 从 MySQL 表中选择每个第一个唯一的列元组

php - PHP cURL访问失败至远程Docker Hub/注册表

php - mysql 价格范围 with 或 in range

php - 奇怪的数据库设计,需要指导

php - fatal error :调用未定义函数mysql_connect()

MySQL 不使用索引

javascript - 单击 esc 按钮时,不应关闭甜蜜警报