php - php5中动态查询结果到数组

标签 php mysql arrays dynamic

所以我有一个处理查询的函数:

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/

相关文章:

php - 在 Wordpress 中切换两种语言

PHP import_request_variable 停止工作

mysql - 单表 SELF JOIN 备选方案/除外/相交

php - 在 magento 中添加澳大利亚表费率

c - 将结构体指针数组传递给c中的函数

python - 从数组中随机翻转 m 个值

php - str_replace 多维数组 PHP 中的键

php - 快速生成随机 MySQL 行并多次运行相同的 sql 查询

php - 更新或删除 Solr 索引中的数据?

python - MySQL python 连接器 : "not all arguments converted during bytes formatting"