PDO を使用した行の存在の確認
PDO を使用してデータベース内の行の存在を確認することが困難になりました。この問題に対処するには、次の解決策を検討してください。
回答で提案されているように、クエリの戻り値を直接確認できます。以下に例を示します。
<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 'Row does not exist'; }</code>
このコードでは、$stmt->execute() がクエリの実行を試みます。行が見つからない場合、$stmt->fetch() は FALSE を返します。これにより、if (!$row) 条件を使用して、行が存在するかどうかを判断できます。
さらに、複数の行をチェックする場合、または行のフェッチを回避したい場合は、$stmt-> を使用できます。 ;fetchAll() メソッド:
<code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!$rows) { echo 'No rows found'; }</code>
または、行が見つかったときに 1 を返すように 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 'Row found';</code>
このアプローチでは、行をフェッチする必要がなくなります。効率の向上。
以上がPDO を使用して行の存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。