所以我有一个处理查询的函数:
function cfquery($query){
// Connection's Parameters
$db_host="localhost";
$db_name="d";
$username="u";
$password="p";
$db_con=mysql_connect($db_host,$username,$password);
$connection_string=mysql_select_db($db_name);
// Connection
mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
// Query
$sql = $query;
$results = mysql_query($sql);
return $results;
}
我正在尝试编写一个函数来获取结果并将它们放入数组中,但是这个函数正在生成一个“资源”,而我在互联网上找到的所有内容都不适用于该数据类型,或者不是动态生成的 - 就像您必须知道列名才能获取数据一样。
例如:
while ($row = mysql_fetch_array($results)){
echo $row['name'] . ',' ;
echo $row['email'] . ',' ;
echo $row['city'] . ',' ;
}
我正在寻找可以从结果中获取列名称的东西。像这样:
$array = new array();
loop rows index x {
loop column_names index y {
$array[x][y] = $results[rows][column_names];
}
}
如果你不知道,我正在从 ColdFusion 过渡,所以我对“资源”是什么只有一个模糊的概念(在阅读了一些文档之后),并且不知道为什么我无法获取数组其中。
最佳答案
如果您可以使用 MySQLi:使用 mysqli_fetch_field_direct()
获取字段元数据。
可以像这样访问字段名称(在结果循环内):
$metadata = mysqli_fetch_field_direct($row, $field_index);
$name = $metadata->name;
如果您无法使用已弃用的(从 5.5 开始)mysql
函数:那么您可以使用 mysql_field_name($result, $field_index)
以相同的方式代替,尽管它将直接返回名称作为字符串而不是对象。
您可以在此处阅读 MySQLi 及其实现:http://uk1.php.net/mysqli
关于php - php5中动态查询结果到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364161/