0

これは単純なことですが、何らかの理由で非常に苦労しています。基本的に、結果を見つけるために select ステートメントを実行します。その結果をループして、結果で見つかった項目を更新します。

これは私のコードです:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare("select * from licenses where email='empty' limit $quantity");
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);


if ($stmt->rowCount() > 0)
{
    $stmt = $pdo->prepare("update licenses set email=:em, exp_date=:exp where 'id'=:id");

    foreach ($row as $row)
    {
        $expires = date("Y-m-d", strtotime('+365 days'));
        $license = $row['license_key'];
        $lid = $row['id'];

        echo $license . '<br> ID:' . $lid;

        $stmt->bindValue(':em', $email1, PDO::PARAM_STR);
        $stmt->bindValue(':exp', $expires, PDO::PARAM_STR);
        $stmt->bindValue(':id', $lid, PDO::PARAM_INT);

        $stmt->execute();
    }

このコードは動作します。動作状態でデータベースを更新します。ただし、Web サイトは 504 エラーを返し、ライセンスの出力は表示されません。このコードの何が問題なのか、または私が目指しているタスクをどのように完了することができるかを誰かが知っていますか?

** 編集: フィドラーを使用すると、次のエラーが表示されます: [Fiddler] ReadResponse() failed: The server did not return a response for this request.

4

2 に答える 2

3

変数名$rowをに変更$rows

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // change variable $row to $rows
foreach ($rows as $row) {
  // Your Code
}
于 2013-08-24T12:46:34.593 に答える