如何使用PDO 檢查資料庫中的行是否存在
當嘗試執行以資料庫中不存在特定行為條件的操作時資料庫中,使用count($row) == 0 或if($stmt->rowCount()
更有效的方法是直接檢查查詢的回傳值。以下程式碼片段說明了此技術:
<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'; }</code>
如果該行存在於資料庫中,此方法將傳回 true,如果不存在,則傳回 false。
用於檢查多行是否存在,您可以使用fetchAll() 方法:
<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中文網其他相關文章!