Checking Row Existence Using PDO
You've encountered difficulty verifying row existence in a database using PDO. To address this issue, consider the following solution:
As suggested in the answer, you can directly check the return value of the query. Here's an example:
<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>
In this code, $stmt->execute() attempts to execute the query. If no row is found, $stmt->fetch() returns FALSE. This allows you to use the if (!$row) condition to determine whether the row exists.
Additionally, if you wish to check for multiple rows or avoid fetching the row, you can use the $stmt->fetchAll() method:
<code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!$rows) { echo 'No rows found'; }</code>
Alternatively, you can instruct MySQL to return a 1 when a row is found:
<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>
This approach eliminates the need for fetching the row, improving efficiency.
The above is the detailed content of How to Check for Row Existence Using PDO?. For more information, please follow other related articles on the PHP Chinese website!