错误代码 1045
Access denied for user 'root'@'localhost' (using password:YES)
解决办法:
1先关闭mysql window下在你的mysql安装目录下 例如c:\mysql2\bin\mysql-nt stop;
2 c:\mysql\bin\mysql-nt --skip-grant-tables
3 mysql -uroot
4 use mysql
5 update user set password = password('新密码') where user='root' and host='localhost'
6 flush privileges
7 c:\mysql\bin\mysql-nt restart
图片的顺序有点问题,应该是复制职员表那题在前面1、假设db_shop库中有一张名叫staffer的职员表,那么复制表包括记录的sql就是 create table db_shop.staffer_bak2 select * from db_shop.staffer
2、查看staffer_bak2 表结构的sql是 desc db_shop.staffer_bak2
3、给staffer_bak2 表添加字段,这题因为我不知道原本的职员表有哪些字段,我只能举例,可以添加例如 姓名,年龄,婚否,薪水,部门,职位,学历,邮箱,手机号,住址等等字段,假设原表没有职位这个字段,咱们来添加这个字段
alter table db_shop.staffer_bak2 add column job varchar(30) comment '职位'
4、添加主键外键
这可以根据原本的职员表哪些字段是主键和外键,咱们就设置哪些为主外键,因为你没有列出我只能猜测原表id是主键,那么设置主键sql就是alter table db_shop.staffer_bak2 add primary key(id)
假设原职员表有department_id(部门id)且与department部门表的id字段有外键约束,那么设置外键sql就是alter table db_shop.staffer_bak2 add constraint `fk1` foreign key (`department_id`) references db_shop.department(`id`)
5、删除外键约束
alter table db_shop.staffer_bak2 drop foreign key `fk1`
6、删除之前添加的职位字段
alter table db_shop.staffer_bak2 drop job
这个需要用程序递归处理
$dept_tree=[]$deptid = 19
while($deptid>0){
//假设你的数据库查询是这个函数,根据条件直接查询一条记录返回
$dept = getone('department',['id'=>$deptid])
//防止数据丢失出错
if(empty($dept))break
array_unshift($dept_tree,$dept)
$deptid = $dept['dep_parentid']
//如果需要防止数据错乱出现递归,这里可以判断一下
if(in_array($deptid,array_column($dept_tree,'id') !== false){
//说明职位关系乱了,有死循环
break
}
}
可以把这段代码封装成一个函数使用。这里就不论从哪一级开始查询了,总是能把该职位及其上级全部查询出来,按顺序放进数组里
$dept_tree 类似这样
array(0=>array(
'id'=>1,
'dep_parentid'=>0,
'dep_name'=>'顶级',
),
1=>array(
'id'=>2,
'dep_parentid'=>1,
'dep_name'=>'国灿金融',
),
2=>array(
'id'=>4,
'dep_parentid'=>2,
'dep_name'=>'招聘部',
),
3=>array(
'id'=>19,
'dep_parentid'=>4,
'dep_name'=>'经理助理',
),
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)