所以我有一个处理查询的函数:
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过渡,所以我对“资源”是什么只有一个模糊的概念(在阅读一些文档之后),并且不知道为什么我不能将数组输出它的。
答案 0 :(得分:2)
如果您可以使用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
答案 1 :(得分:0)
不推荐使用mysql_ * ...使用mysqli_ *或pdo
在MySQL ......
function cfquery($query)
{
$return = array();
$cn = mysql_connect("localhost","u","p") or die('connection error');
mysql_select_db("d", $cn) or die('select db error');
$results = mysql_query($query, $cn) or die(mysql_error($cn));
while ( $row = mysql_fetch_array($results) )
$return[] = $row;
mysql_free_result($results);
mysql_close($cn);
return $return;
}