同时添加两个表的数据
user
user_0,user_1,user_2 数据字段一样(这是为了数据多的时候分成几个表来存储)
设计表都用InnoDB(做事务处理时改为InnoDB)
要添加的数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="add.php" method="post">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>昵称</td>
<td><input type="text" name="uname"></td>
</tr>
<tr>
<td>手机号</td>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="添加"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
$pdo = new PDO('mysql:host=localhost;dbname=mouch7','root','root');
$name=$_POST['name'];
$pwd=$_POST['pwd'];
$uname=$_POST['uname'];
$phone=$_POST['phone'];
try {
$pdo->beginTransaction(); // 开启一个事务
$row = null;
$row= $pdo->exec("insert into user VALUES (NULL,'$name','$pwd')"); // 执行第一个SQL
if(!$row)
throw new PDOException('第一次错误');// 如出现异常提示信息或执行动作
$num=$pdo->lastInsertId();
$var = $num%3;
$list = 'user_'.$var;
$sql="insert into $list VALUES (NULL,'$uname','$phone','$num')";
$row1= $pdo->exec($sql); // 执行第二SQL
if(!$row)
throw new PDOException('第二次错误');
$pdo->commit();
} catch (PDOException $e){
$pdo->rollback(); //执行失败,事务回滚
exit($e->getMessage());
}
?>