1

OK、見込み客用のフィールド値とクライアント用のフィールド値を持つ値でいっぱいのデータベースがあります...

クライアント情報だけを取得したいのですが...

関数の書き方???

アップデート

ここに私が書こうとしたスクリプトがあります:

<?php 
    try { 
        $sql = "SELECT * FROM clients" // WHERE history" or die(mysql_error()); 

        foreach ($dbh->query($sql) as $row) { 
            $row['history'] = $value; 

            if ($value == 'clients'){           
                echo "1212"; 
            } else { 
                echo "Failed"; 
                return; 
            } 
        } 

        $dbh = null; 
    } catch (PDOException $e) { 
        echo "Failed: " . $e->getMessage(); 
        $dbh->rollback(); 
    }
?>
4

2 に答える 2

1

特にトランザクションを開始していないため、ここでロールバックを行う理由はありません。これは単なる SELECT であるため、ロールバックするものは何もありません... $dbh を無効にする理由もわかりません。他のクエリやアプリケーション全体で $dbh を再利用することは可能です...

また、select ステートメントは、実際に必要なデータを反映する必要があります。履歴だけが必要な場合は、SELECT history FROM clients[...] が最適です。

<?php 
try { 
    $sql   = "SELECT * FROM clients WHERE history = 'clients'"; 
    $query = $dbh->prepare($sql);

    $query->execute();

    while($row = $query->fetch())
    {
      if($row['history'] == 'clients'){
        echo '1212';
      }
    }
} catch (PDOException $e) { 
    echo "Failed: " . $e->getMessage(); 
}
?>
于 2009-09-21T17:11:24.043 に答える
0

サンプルスクリプトに基づいて、これは同じことを行いますが、アプリケーション層のスクリプト内ではなく、データベース層のクエリに条件演算子を配置します。

<?php 
    try { 
        $sql = "SELECT * FROM clients WHERE history = 'clients'" // WHERE history" or die(mysql_error()); 

        foreach ($dbh->query($sql) as $row) {                       
            echo "1212";  
        } 

        $dbh = null; 
    } catch (PDOException $e) { 
        echo "Failed: " . $e->getMessage(); 
        $dbh->rollback(); 
    }
?>

もちろん、あなたのサンプルのように非クライアント行を反映することは明らかにありませんが、あなたの質問から私が理解できることから、これはあなたが実際に望んでいたことでした。

于 2009-09-21T04:10:16.357 に答える