MySQL函数库,这个函数库是一个外部函数库!这个函数提供了对于MySQL数据库进行操作的常用函数,如连接MySQL服务器、打开数据库、执行SQL语句等。所以这个函数库的功能对于我们来说是非常重要的!
其实,MySQL数据库是整个程序开发的最底层,我们在程序开发时,就必须为其添加一层漂亮的外衣,这层漂亮的外衣就是图形化用户界面(Graphical
User
Interface,简称GUI,又称图形用户接口),也就是使用者只需要具体基本的计算机知识,然后通过鼠标,就可以实现某些复杂的功能!其实,我们现在所使用的Windows操作系统就是典型的GUI!
User
Interface,简称GUI,又称图形用户接口),也就是使用者只需要具体基本的计算机知识,然后通过鼠标,就可以实现某些复杂的功能!其实,我们现在所使用的Windows操作系统就是典型的GUI!
1. mysql_connect
功能:建立到MySQL服务器的连接
语法:[$变量名称=]mysql_connect(“服务器名称:端口”,”用户名”,”密码”);
如果正确的连接到了MySQL服务器,则返回值的数据类型为资源(resource),否则将返回布尔型false
2. mysql_select_db
功能:打开指定数据库
语法:[$变量名称=]mysql_select_db(“数据库名称”[,连接标识符]);
如果省略连接标识符,则默认情况下使用刚刚打开的服务器连接
如果省略连接标识符,则默认情况下使用刚刚打开的服务器连接
3. mysql_query
功能:执行MySQL命令
语法:[$变量名称=]mysql_query(“SQL命令”[,连接标识符]);
如果省略连接标识符,则默认情况下使用刚刚打开的服务器连接
理论上来说,执行的SQL命令为任意SQL命令,如创建数据表、存储过程、触发器等,但实际上来说,SQL命令一般只是记录的插入、删除、更新和查询!因为,我们在程序设计之初,首先就是数据库的规划,对于数据库中存在多少张数据表、数据表中存在多少个字段以及数据表之间的关系,我们可以根据项目需求来规划,但是数据表中到底有多少记录,则无从规定,所以,SQL命令就是记录的增、删、改、查这四大操作!
另外,SQL[Structured
Query
Language,结构化查询语言]中的Query意为查询,但不要理解为查找,查找只是一种查询命令!SQL命令一般可以分为DDL和DML,这里的Query是所有SQL命令的统称。这一点对于初始者来说,必须要分清!
Query
Language,结构化查询语言]中的Query意为查询,但不要理解为查找,查找只是一种查询命令!SQL命令一般可以分为DDL和DML,这里的Query是所有SQL命令的统称。这一点对于初始者来说,必须要分清!
如果执行的SQL命令为SELECT,SHOW,EXPLAIN 或 DESCRIBE,这些命令正确执行的话,返回结果的数据类型为资源;错误执行的话,返回结果为布尔型false。对于其他所有的命令,正确执行返回结果为true;错误执行返回结果为false。
4. mysql_num_rows
功能:返回结果集中包含的记录数目
语法:[$变量名称=]mysql_num_rows($结果集名称);
此命令仅对 SELECT 语句有效
5. mysql_num_fields
功能:返回结果集中包含的字段数目
语句:[$变量名称=]mysql_num_fields($结果集名称);
6. mysql_field_name
功能:获取指定索引位置的字段名称
语法:[$变量名称=]mysql_field_name($结果集名称,字段索引位置);
说明:字段索引位置从0开始编号
7. mysql_fetch_array
功能:从结果集中抽取一行作为数字数组或关联数组或两者兼之
语法:[$变量名称=]mysql_fetch_array($结果集名称[,MYSQL_NUM|MYSQL_ASSOC|MYSQL_BOTH]);
8. mysql_fetch_row
功能:从结果集中抽取一行作为数字数组
语法:[$变量名称=]mysql_fetch_row($结果集名称);
9. mysql_fetch_assoc
功能:从结果集中抽取一行作为关联数组
语法:[$变量名称=]mysql_fetch_assoc($结果集名称);
10. mysql_insert_id
功能: 取得上一步 INSERT 操作产生的 ID
语法:[$变量名称=]mysql_insert_id([连接标识符]);
mysql_insert_id() 将 MySQL 内部的 C API 函数
mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是
BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数
LAST_INSERT_ID() 来替代。
mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是
BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数
LAST_INSERT_ID() 来替代。
11. mysql_affected_rows
功能:获取insert、update、delete操作所影响的记录数
语法:[$变量名称=]mysql_affected_rows([连接标识符]);
12. mysql_free_result
功能:释放结果集
语法:[$变量名称=]mysql_free_result($结果集名称);
13. mysql_close
功能:关闭数据库连接
语法:[$变量名称=]mysql_close([连接标识符]);
我们还要来看一个案例吧!
在MySQL内创建如下结构的数据表,并且添加记录
use test;
create table users
(
uid smallint unsigned not null primary key auto_increment,
username varchar(20) not null unique,
password varchar(32) not null
);
insert into users(username,password) values('admin','21232f297a57a5a743894a0e4a801fc3');
insert into users(username,password) values('test','098f6bcd4621d373cade4e832627b4f6');
insert into users(username,password) values('ccjsj','12a5163ff108df1d7314dd28a0ff29d2');
现在,我们的任务就是通过PHP的应用程序来读取数据库中的数据!
$conn = mysql_connect("localhost","root","ccjsj");
mysql_select_db("test");
$sql = "select * from users";
$result = mysql_query($sql);
$rowsNum = mysql_num_rows($result);
$fieldsNum = mysql_num_fields($result);
$table .= "<table width=\"800\" cellpadding=\"8\" cellspacing=\"0\" border=\"1\" align=\"center\">\n";
$table .= "<tr>\n";
for($i=0;$i<$fieldsNum;$i++)
{
$table .= "<td>" . mysql_field_name($result,$i) . "</td>\n";
}
$table .= "</tr>\n";
if($rowsNum)
{
while($row = mysql_fetch_array($result))
{
$table .= "<tr>\n";
{
$table .= "<tr>\n";
for($i=0;$i<$fieldsNum;$i++)
{
$table .= "<td>" . $row[$i] . "</td>\n";
}
$table .= "</tr>\n";
}
}
$table .= "</table>\n";
echo($table);
mysql_free_result($result);
mysql_close();
PHP的源代码如图一
[图一]
运行结果如图二
[图二]
浏览器的源代码如图三
[图三]