用户从一个不同的页面来到这个页面,他们点击一个链接,?photo_id=
然后附加一个 id 编号。我希望查看者到达此页面时可以使用某些信息。
我希望他们能够看到照片、照片名称和摄影师姓名。前两个不是问题,因为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 行中提到的列数,但我真的不想为每个列创建一个变量。
有人可以帮帮我吗?