如何在PHP中操作MySQL数据库

一、连接MySQL服务器
PHP操作MySQL数据库,首先要建立与MySQL服务器连接,函数语法如下:

mysqli mysqli_connect([string server [,string username[,string password[,string dbname[,int port[,string socket]]]]]])

mysqli_connect()函数的参数说明:

参数 说明
server MySQL服务器地址
username 用户名
password 密码
dbname 连接的数据库名称
port MySQL服务器使用的端口号
socket UNIX域 socket

例如:


			alert('数据库连接成功!');
		";
	}else{
		echo "";
	}
?>

二、选择MySQL数据库
mysqli_connect()函数可以创建于服务器的连接,同时也要指定数据库名称,所以MySQLi扩展还提供了mysqli_select_db()函数来选择MySQL数据库,语法是:

bool mysqli_select_db(mysqli link,string dbname);

link为连接MySQL服务器后返回的连接标识。
dbname为指定要选择的数据库名称。
例如:


			alert('数据库选择成功');
		";
	}else{
		echo "";
	}
?>

也可以不使用函数mysqli_select_db()来选择MySQL数据库,例如:


如果服务器中有 db_study 数据库,浏览器中会出现“数据库选择成功”。
三、执行SQL语句
对数据库中的表进行操作,通常使用 mysqli_query() 函数执行SQL语句,语法是:

mixed myqsli_query( mysql link,string query[,int resultmode]);

link为连接MySQL服务器后返回的连接标识。
query为所要执行的查询语句。
resultmode为可选参数,值为 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。
例如:
执行一个添加会员记录的SQL语句

$conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
$vip1 = mysqli_query($conn,"insert into tb_member values('mrsoft','123','[email protected]')");//执行一个添加会员记录的SQL语句

执行一个修改会员记录的SQL语句

 $conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
 $vip2 = mysqli_query($conn,"update tb_member set user='mrbook',pwd='111' where user='mrsoft'");//执行一个修改会员记录的SQL语句

执行一个删除会员记录的SQL语句

 $conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
 $vip3 = mysqli_query($conn,"delete from tb_member where user='mrbook'");//执行一个删除会员记录的SQL语句

执行一个查询会员记录的SQL语句

$conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
$vip4 = mysqli_query($conn,"select * from tb_member");//执行一个查询会员记录的SQL语句

执行一个选择db_study数据库的SQL语句

$conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
$vip5 = mysqli_query($conn,"use db_study");//执行一个选择db_study数据库的SQL语句

设置数据库的编码格式为utf-8

$conn = mysqli_connect("127.0.0.1","root","123456","db_study");  //连接db_study数据库
$vip6 = mysqli_query($conn,"set names utf8");//设置数据库的编码格式为utf-8

四、将结果集返回到数组中
使用mysqli_query()函数执行select语句时,如何将结果集返回到数组中,语法为:

array mysqli_fetch_array(resource result [,int result_type]);

result为资源类型的参数,要传入的是由mysqli_query()函数返回的指针。
result_type为可选参数,设置结果集数组的表述方式,值为:MYSQLI_ASSOC、MYSQLI_NUM、MYSQLI_BOTH
例如:
利用mysqli_fetch_array()函数读取db_study数据库中tb_study数据表中的数据。
第一步:编写 conn.php 文件,实现与MYSQL服务器连接,选择db_study数据库,并设置数据库的编码格式为utf8。


第二步:创建 index.php文件,通过include_once语句包含数据库连接文件;
通过mysqli_query()函数执行查询语句,查询tb_study数据表中的数据;
通过 mysqli_fetch_array()函数将查询结果集中的数据返回到数组中;
通过while 循环语句循环输出数组中的数据。


	
		
			
		
		
			
		
		
			
		
		
			
		
		
			
		
	

五、从结果集中获取一行作为对象
mysqli_fetch_array()函数来获取结果集中的数据,而mysqli_fetch_object()函数也是获取结果集中的数据,唯一不同是mysqli_fetch_object()函数返回的是对象。语法为:

mixed mysqli_fetch_object(resource result);

例如:
利用mysqli_fetch_object()函数读取db_study数据库中tb_study数据表中的数据。
第一步:创建数据库的连接文件conn.php。(和上面的实例相同)
第二步:编写index.php 文件,利用mysqli_query()函数执行SQL查询语句并返回结果集。
通过while语句和mysqli_fetch_object()函数循环输出查询结果集。


	
		
			name;?>
		
		
			pwd;?>
		
		
			qq;?>
		
		
			id;?>
		
	

六、从结果集中获取一行作为枚举数组
语法:

mixed mysqli_fetch_row(resource result);

七、从结果集中获取一行作为关联数组

mixed mysqli_fetch_assoc(resource result);

八、获取查询结果集的记录数

int mysqli_num_rows(resource result);

九、释放内存
数据库操作完成后,需要关闭结果集,释放系统资源。语法为:

void mysqli_free_result(resource result);

mysqli_free_result()函数将释放所有与结果标识符 result 所关联的内存。该函数仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后,所有关联的内存都会被自动释放。
十、关闭连接
完成对数据库的操作后,需要及时断开与数据库的连接并释放内存,否则会浪费大量的内存空间,在访问较大的web项目中,很可能会导致服务器崩溃。在MYSQL函数库中,使用mysqli_close()函数断开与MYSQL服务器的连接,该函数语法为:

bool mysqli_close(mysqli link);

例如:


	
		
			
		
		
			
		
		
			
		
		
			
		
	

十一、连接与关闭MySQL服务器的最佳时机
MySQL服务器连接应该及时关闭,但并不是说没一次数据库操作之后都要立即关闭MySQL连接。
在book_query()函数中实现MySQL服务器的连接,在查询数据表中的数据之后释放内存并关闭MySQL服务器的连接,代码如下:

";
		}
		mysqli_free_result($result);
		mysqli_close($conn);
	}
	book_query();
	book_query();
?>

在上面的代码中,每调用一次book_query()函数,都会打开新的MySQL服务器和关闭MySQL服务器连接,耗费了服务器资源,这时可以将上述代码修改为:

";
		}
		mysqli_free_result($result);
	}
	$conn = mysqli_connect("127.0.0.1","root","123456","db_study") or die("连接数据库服务器失败!".mysqli_error());
	mysqli_query($conn,"set names utf8");
	book_query();
	book_query();
	mysqli_close($conn);
?>

这样在多次调用book_query()函数时,仅打开一次MySQL服务器连接,节省了网络和服务器资源。

你可能感兴趣的:(数据库)