pconnectでトランザクションしていてエラーが起きたとき

pconnectでデータベースに接続し、トランザクションしたはいいけど途中でエラーを吐いたとき。
というより、pconnectしてたの気づいてなかったので詰まった。

$conn = @mysql_pconnect("localhost", "root", "");
$db = mysql_select_db("test", $conn);

echo $conn;
mysql_query("START TRANSACTION");
$sql= "insert into ci_test(t)values('".uniqid()."');";
mysql_query($sql,$conn);


$sql= "insert into ci_エラー出すよー(t)values('".uniqid()."');";
mysql_query($sql,$conn); //ここで止まる;

echo $sql;

スクリプトはもちろん止まっててこの時点でのデータベースに
データは書き込まれていない(内部では書かれている)が、
スクリプトを直さずもう一度ページを更新した際にコミットされるようだ。

なので、pconnectを使う場合はエラーは確実に出さないようにしないとデータが狂ってしまうので注意が必要。


ちなみにrollbackは、auto_increment値までは戻らない。