将PHP与MySQL数据库一起使用,如果我不知道列是什么,如何从一行中选择所有内容?

时间:2010-02-08 05:21:10

标签: php mysql

我有一张桌子,但我不知道列是什么,除了1列。每行只有1个永久数据值,其余列在其他地方添加和删除。这不是查询的问题,我只是这样做:

SELECT * FROM table

但对于php函数bind_result(),我需要为每列提供变量,我不知道。

我认为一旦我在数组中有列,我就可以进行另一个查询并使用call_user_func_array将结果绑定到数组。

这似乎会出现很多,所以我想知道有没有一种标准的方法来做到这一点?

4 个答案:

答案 0 :(得分:2)

你不能这样做:

$result = mysql_query("SELECT * FROM table");

while ($row = mysql_fetch_assoc($result)) 
{
    foreach ($row as $field => $value)
    {
       ...
    }
}

答案 1 :(得分:0)

你可以做到

show columns from table;

然后解析该字符串以获取列名。

答案 2 :(得分:0)

您还可以尝试describe命令,该命令用于列出表中的所有字段以及每个字段的数据格式。用法:

describe TableName;

答案 3 :(得分:0)

你可以使用

$metadata = $prep_statement->result_metadata()

执行语句后,然后使用类似

的循环遍历所有结果字段
while( $field = $metadata->fetch_field() ) { }

$ field的属性记录在此处:http://www.php.net/manual/en/mysqli-result.fetch-field.php