Php 从查询返回对象数组?
我需要一个函数来返回一个服务数组,每个服务都包含一个id和一个名称。 我一直在查看mysqli文档,但无法验证是否存在比此更智能的解决方案:Php 从查询返回对象数组?,php,mysqli,Php,Mysqli,我需要一个函数来返回一个服务数组,每个服务都包含一个id和一个名称。 我一直在查看mysqli文档,但无法验证是否存在比此更智能的解决方案: function getServices() { $services = array(); $stmt = $this->db->prepare('SELECT id, name FROM services WHERE client_id=?'); $stmt->bind_param("i", $this->
function getServices() {
$services = array();
$stmt = $this->db->prepare('SELECT id, name FROM services WHERE client_id=?');
$stmt->bind_param("i", $this->clientId);
$stmt->execute();
$stmt->bind_result($id, $name);
while ($stmt->fetch()) {
$service = array();
$service['id'] = $id;
$service['name'] = $name;
$services[] = $service;
}
$stmt->close();
return $services;
}
我必须自己构建生成的数组,这似乎有点麻烦。有没有办法让mysql使用所选列构建阵列?切换到PDO,您可以选择
切换到PDO,您可以选择
我不使用mysqli,但从,我相信这应该是可行的:
$stmt = $this->db->prepare('SELECT id, name FROM services WHERE client_id=?');
$stmt->bind_param("i", $this->clientId);
$stmt->execute();
$result = $stmt->get_result();
$services = $result->fetch_all( MYSQLI_ASSOC );
$stmt->close();
return $services;
因此使用:1.
2.
它是针对PHP>=5.3.0的。我不使用mysqli,但是从,我相信这应该可以工作:
$stmt = $this->db->prepare('SELECT id, name FROM services WHERE client_id=?');
$stmt->bind_param("i", $this->clientId);
$stmt->execute();
$result = $stmt->get_result();
$services = $result->fetch_all( MYSQLI_ASSOC );
$stmt->close();
return $services;
因此使用:1.
2.
它是针对PHP>=5.3.0的。我看不出为什么不能使用此代码。即使mysql构建版本存在(我怀疑,但我不确定,我总是这样使用),也没有必要更改。@19greg96-OP使用的是mysqli,而不是mysqli。我不明白为什么不能使用此代码。即使mysql构建版本存在(我怀疑,但我不确定,我总是这样使用),也没有必要更改。@19greg96-OP使用的是mysqli,而不是mysqlSeconded。您可以传递fetch参数
$stmt->fetchAll(PDO::fetch_ASSOC)
以返回关联数组。这里还有很多其他选择:附议。您可以传递fetch参数$stmt->fetchAll(PDO::fetch_ASSOC)
以返回关联数组。这里还有很多其他选择:谢谢你的解决方案。遗憾的是,我的服务器运行的是PHP5.2,所以get\u result
方法不存在。@DennisMadsen:很抱歉听到这个消息。在这种情况下,如果您认为值得努力,您可以扩展mysqli_stmt并自己实现它。或者,如果您认为值得努力的话,可以使用PDO
,而不是mysqli
。谢谢您的解决方案。遗憾的是,我的服务器运行的是PHP5.2,所以get\u result
方法不存在。@DennisMadsen:很抱歉听到这个消息。在这种情况下,如果您认为值得努力,您可以扩展mysqli_stmt并自己实现它。或者,如果您认为值得努力,可以使用PDO
,而不是mysqli
。