PDO を使用してデータベース内の行の存在を確認するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-22 10:32:02
オリジナル
917 人が閲覧しました

How Can You Check the Existence of a Row in a Database Using PDO?

PDO を使用してデータベース内の行の存在を確認する方法

データベース内に特定の行が存在しないことを条件としたアクションを実行しようとする場合データベースを使用する場合、count($row) == 0 や if($stmt->rowCount() < 0) などの従来の方法を使用すると問題が発生する可能性があります。

より効果的なアプローチは、データベースを直接調べることです。クエリの戻り値。次のコード スニペットは、この手法を示しています。

<code class="php">$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?');
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if( ! $row)
{
    echo 'nothing found';
}</p>
<p>このメソッドは、データベースに行が存在する場合は true を返し、存在しない場合は false を返します。</p>
<p>複数の行の存在を確認する場合、 fetchAll() メソッドを使用できます:</p>
<pre class="brush:php;toolbar:false"><code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here
if( ! $rows)
{
    echo 'nothing found';
}</code>
ログイン後にコピー

データのフェッチを避けたい状況では、次のクエリを使用してブール値を返すように MySQL を設定できます:

<code class="php">$sql = 'SELECT 1 from table WHERE id = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['id']]);

if($stmt->fetchColumn()) echo 'found';</code>
ログイン後にコピー

このメソッドは、行がデータベースに存在する場合はゼロ以外の値を返し、それ以外の場合は false を返します。

以上がPDO を使用してデータベース内の行の存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!