本文目录一览:
- 1、关于php操作mysql执行数据库查询的一些常用操作汇总
- 2、MySQL数据库设置远程访问权限方法小结
- 3、关于Ubuntu中的MySQL操作
- 4、关于mysql数据库操作
- 5、mysql几个常见问题汇总
- 6、mysql数据库软件怎么使用,如何连接数据?
关于php操作mysql执行数据库查询的一些常用操作汇总
php操作mysql步骤:
1.$connect=mysql_connect('localhost','root','123456')
or
die('数据库连接失败。'mysql_error());链接mysql。
2.mysql_select_db('database',$connect)选择链接的数据库。
3.mysql_query('Set
names
gb2312');$sql
=
"select
*
from
blog_article";准备要查询的数据。
4.$datas
=
mysql_query($sql);执行sql查询。
5.$data
=
mysql_fetch_assoc($datas)得到查询到的缓存在内存中的一条数据。
6.print_r($data);
相同点:三个函数都是返回数据库中查询到的一行数据(说的再清楚点就是一条数据)。
不同点:mysql_fetch_assoc()用的是数据库中相应的字段名作为的key值(也就是数组下标)
如:filed['id']=1;
mysql_fetch_row()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标)
如:filed[0]=1;
mysql_fetch_array()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标),而且它还同时生成数据库中相应的字段名作为的key值(也就是数组下标)
如:
filed[0]=1,filed['id']=1;也就是说,mysql_fetch_array()将mysql_fetch_assoc()和mysql_fetch_row()查询到的结果合为了一体了。
mysql_fetch_object()与mysql_fetch_assoc()差不多。只是mysql_fetch_assoc()返回的是数组。mysql_fetch_object()返回的是object对象。
mysql_insert_id() 取得上一步
INSERT
操作产生的
ID。
mysql_result()
函数返回结果集中一个字段的值。
mysql_num_fields()
函数返回结果集中字段的数目。
mysql_affected_rows();返回前一次
MySQL
操作所影响的记录行数。
mysql_num_rows(mysql_query($sql))获得结果集中行的数目。
mysql_pconnect()
函数打开一个到
MySQL
服务器的持久连接。
mysql_pconnect()
和
mysql_connect()
非常相似,但有两个主要区别:
1.
当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
2.
其次,当脚本执行完毕后到
SQL
服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close()
不会关闭由
mysql_pconnect()
建立的连接)。
mysql_data_seek(mysql_query($sql),8);获得结果集中的第8条数据。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。)
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不缓存。mysql_query($sql)会缓存查询的结果。
mysql_close();关闭mysql的最近的链接。
mysql_field_flags(mysql_query($sql),6)返回第六个字段的表属性输出如:not_null
primary_key
auto_increment
。
mysql_fetch_lengths(mysql_query($sql))返回该条数据的所有字段的每个字段的长度。返回的是一个数字组成的数组。
mysql_field_name(mysql_query($sql),3)返回第三个字段的字段名。
mysql_field_table(mysql_query($sql),0)返回指定字段所在的表名。
mysql_free_result(mysql_query($sql))
函数释放结果内存。
mysql_get_client_info()
函数返回
MySQL
客户端信息。
mysql_get_host_info()
取得
MySQL
主机信息。
MySQL数据库设置远程访问权限方法小结
MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机。
1,设置访问单个数据库权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
test.*
to
'root'@'%';
说明:设置用户名为root,密码为空,可访问数据库test
2,设置访问全部数据库权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'root'@'%';
说明:设置用户名为root,密码为空,可访问所有数据库*
3,设置指定用户名访问权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'%';
说明:设置指定用户名为liuhui,密码为空,可访问所有数据库*
4,设置密码访问权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'%'
IDENTIFIED
BY
'liuhui';
说明:设置指定用户名为liuhui,密码为liuhui,可访问所有数据库*
5,设置指定可访问主机权限
复制代码
代码如下:
mysqlgrant
all
privileges
on
*.*
to
'liuhui'@'10.2.1.11';
说明:设置指定用户名为liuhui,可访问所有数据库*,只有10.2.1.11这台机器有权限访问
还可以设置指定访问某个数据库下的某个数据表,请继续关注MySQL基础知识系列。
关于Ubuntu中的MySQL操作
关于Ubuntu中的MySQL操作
ubuntu下mysql的常用命令,MySQL数据库的基本操作命令
一、mysql服务操作
0、查看数据库版本 sql- status;
1、net start mysql //启动mysql服务
2、net stop mysql //停止mysql服务
3、mysql
-h主机地址 -u用户名 -p用户密码 //进入mysql数据库
4、quit //退出mysql操作
5、mysqladmin -u用户名
-p旧密码 password 新密码 //更改密码
6、grant select on 数据库.* to 用户名@登录主机 identified by
"密码" //增加新用户
exemple:
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作
(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据
库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to
test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant
select,insert,update,delete on mydb.* to test2@localhost identified by "";
关于mysql数据库操作
1.
create
database
school;//创建数据库
2.
show
databases;
//查看数据库
3.
use
school;
//使用创建的数据库
4.
create
table
students
(
s_no
int
,name
varchar(20),gender
varchar(10),birthday
datetime,image
blob
,address
varchar(50),
c_no
int,primary
key
(s_no,c_no)
);
//建students表
5.
create
table
classes(c_no
int,name
varchar(20)
,
class_adviser
varchar(20)
,foreign
key(c_no)
REFERENCES
students(c_no));
//建classes表
6.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(1,'Sally','FM','1987-1-2',null,'aaaaa',1);
7.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(2,'Nicholas','M','1985-8-8',Null,'bbbbb',1);
8.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(3,'Jason','M','1988-5-19',Null,'ccccc',2);
9.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(4,'Jamile','M','1979-2-5',Null,'ddddd',2);
10.
insert
into
classes
(c_no,name,class_adviser)
values
(1,'Class1','Mike');
11.
insert
into
classes
(c_no,name,class_adviser)
values
(2,'Class2','Andy');
12.
select
a.*
from
students
a,
classes
b
where
a.c_no
in
(select
b.c_no
from
classes
b
where
b.class_adviser
=
'Mike')
and
a.c_no
=
b.c_no;
//查数据
或者
select
students.s_no,
students.name,
students.gender,
students.birthday,
students.image,
students.address,
students.c_no
from
students,
classes
where
students.c_no
in
(select
c_no
from
classes
where
class_adviser
=
'Mike')
and
students.c_no
=
classes.c_no;
卢旭
mysql几个常见问题汇总
一、Can’t connect to MySQL server on ‘localhost’ (10061)
翻译:不能连接到 localhost 上的mysql
分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。
需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。
解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。
如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin -uroot -p123 processlist来查看mysql当前的进程。
二、Unknown MySQL Server Host ‘localhosadst’ (11001)
翻译:未知的MySQL服务器 localhosadst
分析:服务器 localhosasdst 不存在。或者根本无法连接
解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbhost重新设置为正确的mysql 服务器地址。
三、Access denied for user: ‘roota@localhost’ (Using password: YES)
翻译:用户 roota 访问 localhost 被拒绝(没有允许通过)
分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确
解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。
四、Access denied for user: ‘red@localhost’ to database ‘newbbs’
翻译:用户 red 在localhost 服务器上没有权限操作数据库newbbs
分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起的。比如在select update等等。这个是因为该用户没有操作数据库相应的权力。比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作。
解决:如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red 。或者直接修改 ./config.inc.php 为其配置一个具有对数据库操作权限的用户
或者通过如下的命令来更新授权grant all privileges on dbname.* to ‘user’@’localhost’ identified by ‘password’
提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效
FLUSH PRIVILEGES;
五、No Database Selected
翻译:没有数据库被选择上
分析:产生的原因有两种
config.inc.php 里面$dbname设置的不对。致使数据库根本不存在,所以在 $db-select_db($dbname); 时返回了false
和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。
解决:对症下药
打开config.inc.php 找到$dbname核实重新配置并保存
同问题四的解决方法
六、Can’t open file: ‘xxx_forums.MYI’. (errno: 145)
翻译:不能打开xxx_forums.MYI
问题分析:
这种情况是不能打开 cdb_forums.MYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法:
1、修复数据表
可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)
1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI;
2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上两种修复方式在执行前一定要备份数据库。
mysql数据库软件怎么使用,如何连接数据?
可以使用mysql推出的mysqlconnector/net组件,该组件是mysql为ado.net访问mysql数据库设计的.net专用访问组件,完成该组件后,需要在项目中引用这个组件,之后在程序中引用命名空间mysql.data.mysqlclient,即可开始进行连接mysql数据库的操作了,示例如下:
protected
voidmysqlcon()
{
//数据库连接字符串跟连接sqlserver没有区别
string
constr
=
"server=localhost;userid=root;password=root;database=test";
//下面使用mysql
connector/net提供的专用对象
mysqlconnection
mycon
=
new
mysqlconnection(constr);
mycon.open();
mysqlcommandmycmd
=
new
mysqlcommand("select
*
from
users",
mycon);
mysqldatareader
myreader
=
mycmd.executereader();
while
(myreader.read())
{
if
(myreader.hasrows)
{
messagebox.show(myreader.getstring("email")
);
}
}
myreader.close();
mycon.close();