PHP& Mysqli - 选择一列作为字符串而不是数组

时间:2012-12-13 21:14:59

标签: php database select mysqli

我想知道是否有办法从数据库中选择一个细节(某人的id),而不是使用PHP和MySQLI将其作为数组。

5 个答案:

答案 0 :(得分:3)

您可以将结果放入对象,然后选择列。 例如。要从查询中选择列name,您可以使用

$query = $mysqli->query("SELECT * FROM `table` WHERE `id` = '1'");
echo $query->fetch_object()->name;

而不是使用更常见的

$query = $mysqli->query("SELECT * FROM `table` WHERE `id` = '1'");
$data = $query->fetch_array();
echo $data['name'];

如果查询返回多行,您可以将其放入while查询中,就像使用数组结果一样。

答案 1 :(得分:1)

使用group_concat():

$query = 'SELECT GROUP_CONCAT(name SEPARATOR ", ") FROM tblUser';

if($result = $mysqli->query($query)) {
    $row = $result->fetch_object();
    echo $row['name'];
}

这将返回1列(名称),其中包含1个值(表中每个用户ID的逗号分隔列表/字符串)

示例表:

tblUser
+--------+-----------+
| userid | name      |
+--------+-----------+
|  3     |    Joe    | 
|  4     |    Mike   |
|  5     |    Sharon | 
+--------+-----------+

使用上面的查询将返回:

+----------------------+
| name                 |
+----------------------+
| `Joe, Mike, Sharon`  |
+----------------------+

答案 2 :(得分:0)

那是不可能的。由于数据库处理列和行,几乎所有API至少都有使用列表(数组)的表示

但是你可以很容易地获得一个结果:

// Query results a single result
$result = $mysqli->query("SELECT somecolumns FROM table WHERE somecondition");
$row = $result->fetch_row();
echo $row[0]; // The desired field

答案 3 :(得分:0)

function getColumn($field,$table){

  $db=new mysqli("server","user","pass","db");

  $rs=$db->query("select $field from $table");

  return $rs;
}

//then call it as follows:

$r=getColumn("fieldName","tableName");

while($col=$r->fetch_array()){

 echo "$col[0]";

}

答案 4 :(得分:0)

function getColumn($field,$table){

$db=new mysqli("server","user","pass","db");

$rs=$db->query("select $field from $table");

$str="";

while($row=fetch_array()){
$str.=$row[0]."<br/>";
}

return $str;

}

//then call it as follows:

$col=getColumn("fieldName","tableName");

echo $col;

}