0
可能性の重複:
MySQL AUTO_INCREMENT does not ROLLBACKなぜPHP関数がmysql_insert_idをロールバックした後でも自動的にインクリメントするのですか?
<?php
header("Content-Type:text/html; charset=utf-8") ;
$conn = mysql_connect('127.0.0.1', 'root', '123456') ;
mysql_select_db('test') ;
mysql_query('set autocommit=0') ;
mysql_query('start transaction') ;
try
{
$sql = "insert into `user`(`username`, `password`) values('demo', 'demopassword')" ;
echo $sql, '<br/>' ;
$rs = mysql_query($sql) ;
echo mysql_affected_rows(), '<br/>' ;
if (mysql_affected_rows() > 0)
{
$uid = mysql_insert_id() ;
echo $uid, '<br/>' ;
throw new Exception('conn exception : ' . mysql_error()) ;
}
else
{
throw new Exception('conn exception : ' . mysql_error()) ;
}
}
catch(Exception $e)
{
echo $e->getMessage(), '<br/>' ;
echo "rollback", "<br/>" ;
mysql_query('rollback') or die(mysql_error()) ;
}
if (!$conn)
{
mysql_close($conn) ;
}
?>
申し訳ありません...私の英語はとても悪い...
は、コードの上に見... 私は新鮮そのページ... uid変数が自動的に増分されます。 なぜですか?
私はuが私を理解してほしい... くださいhelp..thanks