更新:
工作代碼,感謝jon推動正確的方向。使用數組變量的Foreach循環中的SQL查詢
<?php
$stmt2 = $conn->prepare("SELECT * FROM userItems WHERE id=:id");
foreach ($moodItems as $id2)
{
// bind the parameters
$stmt2->bindValue(":id", $id2);
if ($stmt2->execute()) {
if($result = $stmt2->fetch(PDO::FETCH_ASSOC)) {
// initialise an array for the results
$itemName2 = $result['itemName'];
$name2 = $result['userId'];
echo $itemName2."<br>";
echo $name2."<br>";
}
}
}
?>
我無法在foreach循環中使用SQL查詢。我試圖使用第一個查詢(這是一個數組)的值,並在第二個查詢中使用它。
第一個查詢正確地爲我提供正確的值(數組)。但由於某種原因,當我嘗試在foreach中使用該數組時,它不能正常工作,它不顯示任何錯誤......它只是不從數據庫中獲取任何數據。
IE/echo $ itemName2; < ----沒有從數據庫中得到任何信息
任何幫助都會很棒。謝謝。
這裏是我一起工作的代碼:
<?php
$attrs = array(PDO::ATTR_PERSISTENT => true);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare the statement.
$stmt = $conn->prepare("SELECT * FROM userMoodboard WHERE name=:name");
// bind the parameters
$stmt->bindValue(":name", $loggedInUser->username);
// initialise an array for the results
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$imageUrl = $row['imageUrl'];
$moodItems = $row['moodItems'];
$moodItems = json_decode($moodItems);
?>
<img src='<?php echo $imageUrl;?>' class="thumbnail"></img>
<?php
$stmt = $conn->prepare("SELECT * FROM userItems WHERE id=:id");
foreach ($moodItems as $id)
{
// bind the parameters
$stmt->bindValue(":id", $id);
// initialise an array for the results
if($stmt->execute()) {
$itemName2 = $row['itemName'];
$name2 = $row['userId'];
echo $itemName2;
echo $name2;
}
}
}
}
?>
感謝您的詳細解答...我已經試過這段代碼,但仍然沒有運氣,任何想法,我的語法出錯了? 'code' $ stmt2 = $ conn-> prepare(「SELECT * FROM userItems WHERE id =:id」); foreach($ moodItems as $ id) { //綁定參數 $ stmt2-> bindValue(「:id」,$ id); //初始化一個數組對結果 \t如果($導致= $ stmt2->取(PDO :: FETCH_ASSOC)){ \t $ itemName2 = $導致[ 'ITEMNAME']; \t $ name2 = $ result ['userId']; \t \t \t echo $ itemName2; echo $ name2; } } – JustAnotherDude
從我所看到的看來,在使用'$ stmt2-> fetch'之前,您需要'$ stmt2-> execute',否則在綁定參數後您的查詢還沒有運行。 – Jon