ホームページ  >  記事  >  バックエンド開発  >  PDO を使用してデータベース内の行の存在を確認するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-10-22 10:32:02918ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。