사용자는 링크를 클릭하는 다른 페이지에서이 페이지로 이동하며 ?photo_id=
과 ID 번호가 추가됩니다. 이 페이지에 도착했을 때 특정 정보를 시청자가 이용할 수있게하고 싶습니다.MySQLI에 대해 초기화 된 준비 문을 사용하는 동안 왼쪽 결합은 어떻게 작동합니까?
사진, 사진 이름 및 사진 작가의 이름을 볼 수 있기를 바랍니다. 처음 두 개는 문제가되지 않습니다. 왜냐하면 photo_id
, photo_filename
및 photo_title
이 모두 같은 테이블에 있기 때문입니다. photographers
이라는 다른 테이블에있는이 사진에 대한 정보를 얻 자마자 문제가 발생합니다.
$sql = 'SELECT photos.photo_id, photos.photo_title, photos.photo_filename, photos.photographer_id, photographers.photographer_id, photographers.photographer_name
FROM photos
LEFT JOIN photographers ON photos.photographer_id = photographers.photographer_id
WHERE photo_id = ?';
//initialize prepared statement
$stmt = $conn->stmt_init();
if ($stmt->prepare($sql)) {
$stmt->bind_param('i', $_GET['photo_id']);
$stmt->bind_result($photo_id, $photo_title, $photo_filename, $photographer_id);
$OK = $stmt->execute();
$stmt->fetch();
}
처음 세 개의 변수 ($photo_id
, $photo_title
및 $photo_filename
) 잘 작동하고 내 페이지에 그들을 밖으로 에코 할 수 있지만, 나는 LEFTJOIN 등을에서 추가 된 다른 변수 : 여기
photographers.photographer_id
및
photographers.photographer_name
과 같이 작동하지 않습니다. 아는 바와 같이 SELECT 행에 추가 열 이름을 추가하면 페이지가 완전히 손상됩니다.
bind_result()
함수의 변수의 양과 관련이 있다는 느낌이 들었습니다. 나는 그들이 SELECT 행에 언급 된 열의 수를 일치시킬 필요가 있다고 생각하지만 각각에 대해 변수를 만들고 싶지는 않다.
아무도 도와 줄 수 있습니까?