我正在尝试使用mysqli准备一条语句,以便安全地将变量值传递给查询。所有这些对我来说都是有效的,但我遇到的问题是在关联数组中获得结果。到目前为止,我的结构如下:
$query = $c->stmt_init();
$query->prepare("SELECT e._id,e.description,e.eventDate,e.eventTime,e.address,e.locationDescription,i.guestId,r.guestId IS NOT NULL AS 'RSVP-ed' FROM eventList AS e JOIN inviteList AS i ON e._id = i.eventId LEFT JOIN rsvpList AS r ON r.eventId = e._id AND i.guestId = r.guestId JOIN guestList AS g ON g._id = i.guestId WHERE g.groupName = ?");
$query->bind_param('s',$groupName);
if ($result = $query->execute()){
$a = $result->fetch_array(MYSQLI_ASSOC); // this doesn't work :/
} else{
error_log ("Didn't work");
}
如你所见,我有很多列被回传,所以我不想把它们分别绑定到一个变量上。
最重要的是,最终目标是将一个json编码的关联数组传递回应用程序的其余部分。
我已经在php文档和堆栈交换中找到了这个问题,我找到了一些建议,但我似乎无法让它们正常工作。有人能帮上忙吗??
发布于 2013-02-22 10:57:28
如果您有MySql本机驱动程序扩展(mysqlnd),则可以使用get_result方法获取ResultSet,然后以通常的方式从它获取:
$query = $c->prepare("SELECT e._id,e.description,e.eventDate,e.eventTime,e.address,e.locationDescription,i.guestId,r.guestId IS NOT NULL AS 'RSVP-ed' FROM eventList AS e JOIN inviteList AS i ON e._id = i.eventId LEFT JOIN rsvpList AS r ON r.eventId = e._id AND i.guestId = r.guestId JOIN guestList AS g ON g._id = i.guestId WHERE g.groupName = ?");
$query->bind_param('s',$groupName);
$query->execute();
$result = $query->get_result();
$a = $result->fetch_array(MYSQLI_ASSOC); // this does work :)
https://stackoverflow.com/questions/15025487
复制相似问题