0

私は問題があります。PHP の foreach ループ内で変数の値を変更する必要がありますが、値は常に定義済みの値を保持しています。コードは次のとおりです。

$returnValue = "";
foreach($vinArray as $vinValue){
    $sql_vin_check = "SELECT * FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->rowCount();
    $stmtvincheck->closeCursor();
    echo $vinValue;
    if($vinCheck != 0){
        $returnValue = $vinValue; break;
    }
}
return $returnValue;

そして値$returnValueを保持し""ます。変数をエコーし$vinValue​​ようとしましたが、ループが壊れたときに空ではありません。

私は何を間違っていますか?

4

1 に答える 1

0

代わりにこれを試してください:

$returnValue = "";
foreach($vinArray as $k=>$vinValue){
    $sql_vin_check = "SELECT count(*) c FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->fetch();
    $stmtvincheck->closeCursor();
    if($vinCheck['c'] > 0){
        $returnValue = $vinValue; 
        break;
    }
}
return $returnValue;

他に何も期待されない場合は、returnvalue/break をそこからの直接のリターンに置き換えることもお勧めします (この提案はあなたの問題とは関係ありません)。

于 2013-09-19T15:36:24.363 に答える