본문 바로가기
MySql

MySQL PHP mysqli-준비된 명령문에서 연관 배열 반환

by 베이스 공부 2021. 1. 12.
반응형

쿼리에 변수 값을 안전하게 전달하기 위해 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 문서와 스택 교환에서 문제를 찾았고 제안을 찾았지만 작동하도록 할 수 없습니다. 누구든지 손을 빌릴 수 있습니까 ??

 

해결 방법

 


$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

 

 

반응형

댓글