扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
首先创建 一个HTML页面userinfo_add.php,在里面输入表单,文本框,输入需要提交的到数据库的信息:
创新互联主营芦溪网站建设的网络公司,主营网站建设方案,APP应用开发,芦溪h5小程序开发搭建,芦溪网站营销推广欢迎芦溪等地区企业咨询
账号 姓名 年龄
页面运行结果:
创建一个PHP文件(userinfo_insert.php),用来处理页面请求的,就是具体往数据库添加数据的代码:
先获取页面数据
//通过post获取页面提交数据信息 $userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
接下来,在连接数据库 ‘test’
//地址
$url = "127.0.0.1";
//账号
$user = "root";
//密码
$password = "root";
//连接
$con = mysql_connect($url,$user,$password);
//设置编码机
mysql_query("set names 'utf8'");
//连接数据库
mysql_select_db("test");
编写SQL,执行SQL添加数据
$sql = "insert into user_info (user_id,user_name,user_age) values('$userId','$userName','$userAge')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "添加一条记录";
//关闭连接
mysql_close($con)
运行结果前:
运行结果后:
完整代码:
你好,用sql语句是不可能实现的,我们可以通过事务来实现,也就是说,SqlCommand的CmdText属性在一个方法当中可以赋多个SQL语句 SqlConnection sqlConnection = new SqlConnection(); ...初始化连接 // 开启事务 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); // 将事务应用于Command SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlConnection; sqlCommand.Transaction = sqlTransaction; sqlCommand.CmdText=第一个sql语句 sqlCommand.ExcuteNoneQuery(); sqlCommand.CmdText=第二个sql语句 sqlCommand.ExcuteNoneQuert(); try { // 利用sqlcommand进行数据操作 ... // 成功提交 sqlTransaction.Commit(); } catch(Exception ex) { // 出错回滚 sqlTransaction.Rollback(); } 如果在执行第二次SQL语句是出错了,那么就会到Catch异常中,执行回滚,那么第一次执行的也同样回滚了,所以必须2个都一行成功才往数据库中提交这里是用了2次SQL语句,如果你想用1个语句同时操控2个表的话,就要用到存储过程或者是触发器,存储过程和触发器
$id = mysql_insert_id();
mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID。
如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。
望采纳Thx
怎么在thinkphp添加数据时获取自动增长的id?
下面是TP5的方法,TP3的在添加后变量直接就获取了。添加数据后如果需要返回新增数据的自增主键,可以使用 getLastInsID 方法:
Db::name('user')-insert($data);
$userId = Db::name('user')-getLastInsID();或者直接使用 insertGetId 方法新增数据并返回主键值:
Db::name('user')-insertGetId($data);
ThinkPHP
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP 开发框架,遵循 Apache2 开源协议发布,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。
基本特性
简单易用的MVC模式
模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
2.独创的核心编译和二分法项目编译机制
ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。
$sqll="INSERT INTO bd_fee(。。。。。)values('。。。。。)"; //插入数据记录
$db-query($sqll);//执行插入,一定要用query,不能用exec
$id=$db-lastInsertId();//获取刚才插入记录的自动编号值。
2种办法
1.修改你的数据库表,将ID设为自增长,注:只有主键才可以设置为自增长
id自增是由mysql负责的,设置id AUTO_INCREMENT 插入时不用插入id值就能实现自增CREATE TABLE `table ` (`id` INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`));
2.代码中进行处理
Statement ps;
ResultSet rs;
int id = 0;
..................
String sql="select max(id) as id from message";
rs = ps.executeQuery(sql);//查询出最大ID
if(rs.next){//如果有ID,原有ID+1
id = rs.getInt("id")+1;
}else{//否则 ID 初始为0
id = 0;
}
//下面接你写的代码就OK了
PreparedStatement ps;
String sql="insert message (id,name,msg) value(?,?,?)"
ps.setString(1,id);
ps.setString(2,name);
ps.setString(3,msg);
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流