i have a question...
Im using pdo and beginTransaction() but i dont understand some things.
My SQL table have 3 columns : id(autoincrement), username(unique), and password
And in my code i have this:
$pdo->beginTransaction();
$prepared = $pdo->prepare("INSERT INTO (username,password) VALUES(?,?)");
$prepared->$pdo->bindParam(1,"stefan");
$prepared->bindParam(2,"111111");
$prepared->execute();
$count= $prepared->rowCount();
if($count === FALSE):
$pdo->rollback();
var_dump($prepared->errorInfo());
else:
$pdo->commit();
echo "row count: {$count}";
endif;
When i execute this code, all works fine, generates id=1, username="stefan" and password="111111".
Now, I am generating an error on purpose to test rollback() function. I tried to insert same data 4 times in a row and i got unique error in $prepared->errorInfo().Works fine too.
The problem is, when im insert a new record after those 4 errors (for example, username="luv", password="222222") this new record has been inserted, but with ID=6 and not ID=2.
That is ok? rollback() should not leave the autoincrement at the last value that was correct? I miss something?
Thanks for help.
auto inc values get "burned" when you do rollbacks. this is normal and expected.
reference this stackoverflow entry
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With