我想知道是否有一种方法可以使用 PHP 和 MySQLI 从数据库中选择一个详细信息(某人的 ID)而不将其设为数组。
问问题
8997 次
5 回答
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 查询中,例如使用一组结果。
于 2012-12-13T21:20:37.150 回答
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` |
+----------------------+
于 2012-12-13T21:19:23.200 回答
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;
}
于 2012-12-13T22:12:48.170 回答
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
于 2012-12-13T21:23:52.287 回答
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]";
}
于 2012-12-13T21:27:44.880 回答