重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一般来说php的系统,成功登录后,都会有个用户数组的缓存,存储登录用户的用户名和ID等信息。
成都创新互联专注于企业成都营销网站建设、网站重做改版、德清网站定制设计、自适应品牌网站建设、H5响应式网站、商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为德清等各大城市提供网站开发制作服务。
你可以查找下,看是用的什么变量,如果找到了缓存数组,却没有ID信息,就要修改登录时的代码,把ID读取也加进去。
从登录的代码开始找,看看有什么线索。
如果没错你是指该用户在前台填写资料后,提交获取数据时,如何判断是哪个用户提交的对吧?
其实这个问题不是什么问题,因为用户提交数据库使用的都是单独的客户端,而每个客户端的 session 是独立的,只要在用户登录的时候将用户 id 写入 $_SESSION[' user_id '] = $user_id; 就可以了,在存入数据库直接获取 $_SESSION['user_id'] ,也就是你需要的用户 id 了。
一般来说,一些经常用的,并且需求全局性的数据都可以存到 session 中以供调用。
给你两个方案:
1、select 查询该表是否有该id , 有则不添加
2、insert 如果没猜错这个id应该是个主键或者唯一键,那么直接插入该id ,如果存在是不可能插入成功的,同时mysql方法会返回错误false ,根据这个信息判断是否添加成功
延伸:
INSERT 加 ON DUPLICATE KEY UPDATE 用法
一条语句搞定不存在即 insert 存在即 update (前提是唯一键重复,主键也是唯一键)
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);