PDO を使用した行の存在の確認
データベースを操作する場合、多くの場合、行が存在するかどうかに応じて、異なるアクションを実行する必要があります。この記事では、PHP で一般的な PDO ライブラリを使用して行の存在を効率的にチェックする方法について説明します。
PDO と Row Existence
PDO は、柔軟で効率的なインターフェイスを提供します。さまざまなデータベースと対話するため。その強力な機能の 1 つは prepare() メソッドです。これを使用すると、プリペアド ステートメントを作成して実行できます。
rowCount() と fetch() によるチェック
count($row) == 0 および $stmt->rowCount()
解決策: 戻り値を直接チェックする
行の存在をチェックするには、単純にexecute()の戻り値。ステートメントが正常に実行され、行が返されなかった場合、execute() は false を返します。その後、必要なアクションを実行できます。
$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?');
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
if( ! $stmt->execute() ) {
echo 'Row not found';
}
フェッチせずにチェックする
実際に行データをフェッチせずに行の存在をチェックしたい場合は、次の形式で値を返す MySQL の機能を使用できます。カウント。これにより、execute() 内で変数をバインドし、その値をチェックすることができます:
$sql = 'SELECT 1 FROM table WHERE ID = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['id']]);
if($stmt->fetchColumn()) {
echo 'Row found';
}
このアプローチは、行データの不必要なフェッチを避けるため、より効率的です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3