在一个服务器上一般来讲都不止一个站点,更不止一个MySQL(和PHP搭配之最佳组合)数据库。
成都创新互联是一家集网站建设,新罗企业网站建设,新罗品牌网站建设,网站定制,新罗网站建设报价,网络营销,网络优化,新罗网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
为了防止安全隐患,我们一般针对每个数据库都设置了独立的数据库访问帐号,该帐号仅有访问该数据库的权限。下面就让我们来具体演示一下:
1、首先我们要登陆php(做为现在的主流开发语言)MyAdmin,不做演示。
2、创建一个数据库,如下图,在php(做为现在的主流开发语言)MyAdmin右边窗口中,填写数据库名称,点创建即可。
例如我们这里创建一个名字为:cncmstest 的数据库
创建成功会有如下提示:
3、点击左上角的主页按钮,返回php(做为现在的主流开发语言)MyAdmin主界面:
4、在主界面的右边点击“权限”来创建数据库帐号。
5、在权限页面中,我们点击“添加新用户”
6、在该页面中,我们填写要创建的数据库用户名,该用户的访问范围,及密码。
如上图,我们填写了用户名为:cncmsuser,该数据库用户只允许本机访问,主机一项选择本地;密码我们使用自动生成的,点下面的“Generate”会生成一个随机密码,然后点“Copy”会自动填写到密码框中。
下面的框都不选,直接拉到页面最下面点执行即可创建一个新用户。
数据库用户创建成功,会返回如下页面:
7、最重要的一步,设置该用户的数据库访问权限
在数据库用户添加成功返回的页面中可以直接设置权限。这里我们选择按数据库指定权限:
如上图,在数据库列表中选择我们刚刚创建的cncmstest,即会自动进入该数据库的权限设置页面。
在上图的权限设置中,我们把“数据”、“结构”两列的权限全部选中,管理权限都不要选。点执行即可。
到这里,我们已经全部设置完毕了,创建了一个数据库:cncmstest,并创建了数据库用户cncmsuser,特别指定了该用户只对cncmstest的访问权限。如此,便达到了我们一开始所讲的目的:为每一个数据库指定独立的用户访问权限。
把来自表单的数据插入数据库
现在,我们创建一个 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)
?
再安装一个PHPMYADMIN,可以交互式的创建数据库,否则你建议数据库要写大量的SQL命令。
补充:我来回答你MYSQL的数据库是什么形式?
看来ACCESS确实太毒害人了,让初学者以为数据库就是.MDB或者.DBF这样的问题,鼠标双击就可以调用相应的数据库管理系统打开,在里面完成数据库表以及数据库数据的操作。其实真正的数据库都不是这样的。
数据库应该是一种服务,比如SYBASE、ORACLE、MYSQL、MSSQL这些,安装这些软件以后,你的机器启动数据库服务以后,会侦听一个TCP端口,其它客户端程序可以用任何语言开发,只要链接到这个端口,提供正确的用户名和密码,就可以依照数据库管理员设定的权限,通过TCP网络提交SQL语句进行数据库建立、数据输入、数据修改、统计查询等应用。
MYSQL是真正意义的数据库,它侦听3306端口,PHP、ODBC等程序可以链接这个端口,通过SQL交互完成数据操作。PHPMYADMIN是一组PHP文件,提供网页方式界面,让大家方便的查看数据以及进行库表维护等其它操作。
数据库程序设计人员不关心数据库的数据具体以什么形式存放在哪里,许多高级数据库甚至没有文件,他们直接使用硬盘,用自己的格式分区和格式化,比如INFORMIX。只有这样,我们才可以以任意语言写程序,而程序适应任意的数据库环境。
只有数据库管理人员在随时关心数据库的数据存放在什么地方,以便进行风险防范和数据备份。MYSQL的数据存放在数据目录下,默认是MYSQL安装目录下的DATA目录下,一般都会修改到其它分区。具体是什么文件与选择的存在格式有关,MYISAM格式是一个数据库一个目录,里面一个表有几个文件。
推荐问题里又见到你的问题了。。呵呵
你的意思就是普通用户有几种权限。我拿管理员来说吧,超级管理员可以有增加用户,增加信息,增加新闻几种权限,普通管理员只有可以增加信息。
先从数据库写一个表,表信息如下
你可以设一个表
CREATE TABLE `admin` (
`id` int(11) NOT NULL auto_increment,
`adminname` varchar(11) default NULL,
`password` varchar(100) default NULL,
`userflag` int(1) default 0, //增加用户的权限,0是没有权限,1是有权限
`newsflag` int(1) default 0, //增加新闻的权限,0是没有权限,1是有权限
`messageflag` int(1) default 0 //增加信息的权限,0是没有权限,1是有权限
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
超级管理员你可以直接在数据库里增加一个 userflag ,newsflag,messageflag全部是1
test.PHP
判断是否有权限
define("DB_ADDRESS","localhost");
define("DB_USER","root");
define("DB_PWD","123456");
define("DB","library");
mysql_connect(DB_ADDRESS,DB_USER,DB_PWD);
mysql_select_db(DB);
$result=mysql_query("select from admin where name="", and password=""");
$row=mysql_fetch_array($result);
if($row['userflag']==1 $row['messageflag']==1 $row['newsflag']==1)
{
echo "你是超级管理员" ;
}
if($row['userflag']==1 ){
echo "你是可以增加用户的管理员" ;
}
希望你能明白了