반응형
쿼리에 변수 값을 안전하게 전달하기 위해 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
반응형
'MySql' 카테고리의 다른 글
MySQL 단일 프로 시저에서 여러 선택 쿼리를 작성하는 방법은 무엇입니까? (0) | 2021.01.12 |
---|---|
MySQL cakephp db에서 데이터 가져 오기 (0) | 2021.01.12 |
MySQL 관련 성별 MySQL 순서 (0) | 2021.01.12 |
MySQL MYSQL-조인으로 쿼리 삭제 (0) | 2021.01.12 |
MySQL | 각 범주의 레코드를 하나만 선택하는 방법은 무엇입니까? (0) | 2021.01.12 |
댓글