不可能在插入前得到这个id值的(先select最大id在低并发的情况下也行,高并发的话终究不够严谨)
把来自表单的数据插入数据库现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
这是这个 HTML 表单:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。
下面是 "insert.php" 页面的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$con = mysql_connect("localhost","peter","abc123")
if (!$con)
{
die('Could not connect: ' . mysql_error())
}
mysql_select_db("my_db", $con)
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error())
}
echo "1 record added"
mysql_close($con)
?>
1.我们应该在每一个mysql_query之后检测是否成功,不成功要输出错误原因,这样才便于分析,例如你可以这么写代码:
$out=''//总的结果$sql="insert into users values (null, '$userid', '$pwd1')"
if (!mysql_query($sql)) $out.="插入用户表失败,SQL:$sql<br>错误:".mysql_error()
$s_sql="select * ...."//真心不明白你这个的意思
$sql="insert into user_role values (null, $role_id, '$s_sql')"
if (!mysql_query($sql)) $out.="插入xx表失败,SQL:$sql<br>错误:".mysql_error()
if ($out=='') echo '<script>alert("添加成功")</script>'
else echo "<script>alert('$out')location.href='login.php'</script>"
2.看你的代码,好像$role_id没有赋值,这可能是导致失败的原因,希望你用上面的方法调试观察。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)