I have found many ways to use the exec statement for PDO, but I’m not sure it helps me. My understanding is that I have to use the execute() function for prepared statements. I am updating a row with data from user input, so I would like to use a prepared statement instead of the query() call.
My code is as follows:
$dbh = buildDBConnector(); $sql = "UPDATE tb_users SET authState=1 WHERE id = ? AND authPass = ?"; $q = $dbh->prepare($sql); $f = $q->execute(array($id,$authPass)); if($f){ echo '<br />Success<br />'; }else{ echo '<br />Failure<br />'; }
The issue is that the query itself is error free and executes fine, so there is no failure to store in $f. However, I need to know if it actually found the row to update, then successfully updated it. In other words, I need the affected rows. When googling and such, it keeps coming to the exec statement, but from my understanding, exec isn’t for prepared statements? Any suggestions?
Advertisement
Answer
Try $q->rowCount()
. Prepared statements will return the number of affected rows via that method.