我需要创建一个脚本来遍历MySQL的结果,并使用mysqli自动返回在查询中选择的列名。 注意:我将使用一些伪代码来更轻松地解释我的观点。这显然是错误的
例如CLIENTS
表,其中包含列:
ID, NAME, EMAIL, TELEPHONE, ADDRESS
如果我有疑问:
$result = $mysqli->query("SELECT * FROM CLIENTS WHERE ID = 1");
我需要脚本返回ID NAME,EMAIL,TELEPHONE,ADDRESS。
伪码:
foreach ($result as $column => $value){
echo $column
}
结果:
ID, NAME, EMAIL, TELEPHONE, ADDRESS,
如果查询只是
,则相同$result = $mysqli->query("SELECT NAME as N, EMAIL as E FROM CLIENTS WHERE ID = 1");
脚本应仅返回:
N, E,
想法?
答案 0 :(得分:4)
这不是一个完整的工作片段,而是朝着正确的方向点头。
$sql = "SELECT * FROM clients WHERE id = 1";
$res = $mysqli->query($sql);
$row = $res->fetch_assoc();
$colNames = array_keys($row);
现在$row
包含一个关联数组,其中包含第一个选定行的所有列名和变量。如果您只想要列名称,则可以在$colNames
中找到它们,然后就完成了。
使用
处理所有数据while ($row = $res->fetch_assoc()) {
...
}
答案 1 :(得分:1)
我认为你也可以在PHP中使用这个查询查询数据库:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';