-1
我想在While循環中使用動態變量編寫查詢,但似乎無法使其正常工作。我是PDO的新手,所以我不是100%,如果這是做這件事的正確方法。與數據庫($ db)的連接工作正常,並且查詢運行正常,沒有第二個$ STH2行。請幫助:)在循環中使用變量的PDO子查詢
<?php
//This will list player info so the user can get the correct player ID
$STH = $db->query('SELECT id, name, tag from wdlTeams');
//Setting the fetch mode
$STH->setFetchMode(PDO::FETCH_ASSOC);
//Create listbox object and populates options with team names
echo "<select name='teamID'>";
while($row = $STH->fetch()) {
$id = $row['id'];
$name = $row['name'];
$tag = $row['tag'];
$seasonId = $row['seasonId'];
$STH2 = $db->prepare('SELECT name from wdlSeasons where id=$seasonId');
$STH2->execute();
$seasonName = $STH2->fetchColumn();
echo "<option value='$id'>$tag - $name ($seasonName)</option>";
echo "<br />";
}
echo "</select>";
?>
我也曾試圖改變以
$STH2 = $db->prepare("SELECT 'name' from 'wdlSeasons' where id='$seasonId'");
,但沒有運氣
預處理語句沒有意義但是,儘管如此,直接將變量注入到SQL字符串中。至少在MySql中'''不是標識符的正確引用,請嘗試反引號。此外,PHP不會插入單個qoutes。 –
而不是循環中的第二個查詢,只需在第一個查詢 - >從wdlTeams wT中選擇wT.id,wT.name,wT.tag,wS.name作爲seasonName wT的LWT JOIN wdlSeasons wS。 id = wT.seasonId' – Sean
謝謝,這個作品完美 – user3490756