学习要点
- PHP访问MySQL配置
- PHP访问MySQL函数介绍
- 足球赛程信息管理
PHP访问MySQL配置
PHP.ini配置文件确认以下配置已经打开
extension=php_mysql.dll #PHP5之前访问数据库模块
extension=php_mysqli.dll #PHP5之后访问数据库模块
通过getinfo()获得支持信息确认PHP是否已支持访问MySQL
PHP访问MySQL函数介绍
mysqli_connect() 函数
- 函数说明
打开一个到 MySQL 服务器的新的连接。
- 语法格式
mysqli_connect(host,username,password,dbname,port,socket);
- 参数说明
参数 |
描述 |
host |
可选。规定主机名或 IP 地址。 |
username |
可选。规定 MySQL 用户名。 |
password |
可选。规定 MySQL 密码。 |
dbname |
可选。规定默认使用的数据库。 |
port |
可选。规定尝试连接到 MySQL 服务器的端口号。 |
socket |
可选。规定 socket 或要使用的已命名 pipe。 |
- 返回值
返回一个代表到 MySQL 服务器的连接的对象,资源类型。
- 示例代码
$link=mysqli_connect('localhost','root','rootkit','myschool');
说明:mysql的默认端口3306,主机地址可以省略端口号,或者省略端口号参数。所以也可以写成如下形式。
mysqli_query() 函数
- 函数说明
执行某个针对数据库的查询。
- 语法格式
mysqli_query(connection,query,resultmode);
- 参数说明
参数 |
描述 |
connection |
必需。规定要使用的 MySQL 连接。 |
query |
必需,规定查询字符串。 |
resultmode |
可选。一个常量。可以是下列值中的任意一个: ü MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个) ü MYSQLI_STORE_RESULT(默认) |
- 返回值
针对成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,将返回一个 mysqli_result 对象。针对其他成功的查询,将返回 TRUE。如果失败,则返回 FALSE。
特别说明:在 PHP 5.3.0 中新增了异步查询的功能。
- 示例代码
//构建SQL语句字符串 $query="SELECT * FROM student"; //执行SQL语句并返回数组结果集 $result=mysqli_query($link, $query);
mysqli_num_rows() 函数
- 函数说明
返回结果集中行的数量。
- 语法格式
mysqli_num_rows(result);
- 参数说明
参数 |
描述 |
result |
必需。规定由 mysqli_query()、mysqli_store_result() 或 mysqli_use_result() 返回的结果集标识符。 |
- 返回值
返回结果集中行的数量。
- 示例代码
//获取记录数 $rownum=mysqli_num_rows($result);
mysqli_fetch_assoc()函数
- 函数说明
Fetch a result row as an associative array。
- 语法格式
array mysqli_fetch_assoc ( mysqli_result $result );
- 参数说明
参数 |
描述 |
result |
Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result(). |
- 返回值
Returns an associative array of strings representing the fetched row in the result set, where each key in the array represents the name of one of the result set's columns or NULL if there are no more rows in resultset.
If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.。
- 示例代码
//从数组结果集中返回一行记录,返回值为关联数组结构 //mysqli_fetch_object($result)返回对象 $row=mysqli_fetch_assoc($result); echo $row['studentno'].':';//通过数据库字段名确定元素值 echo $row['studentname']."<br>"; ;
mysqli_free_result()函数
- 函数说明
释放结果结果集内存。
- 语法格式
mysqli_free_result(result)
- 参数说明
参数 |
描述 |
result |
必需。规定由 mysqli_query()、mysqli_store_result() 或 mysqli_use_result() 返回的结果集标识符。 |
- 返回值
没有返回值。
mysqli_close()函数
- 函数说明
关闭先前打开的数据库连接。
- 语法格式
mysqli_close(connection);
- 参数说明
参数 |
描述 |
connection |
规定要关闭的 MySQL 连接。 |
- 返回值
如果成功则返回 TRUE,如果失败则返回 FALSE。
完整数据库访问步骤
- 建立数据连接
- 构建SQL语句
- 获取结果集
- 处理结果集
- 关闭结果集资源
- 关闭数据库连接
完整示例代码
- 查询
// 1、建立和数据库的连接 $link = mysqli_connect ( '127.0.0.1', 'root', 'rootkit', 'football' ); if (!$link) { echo '数据库连接建立失败'; } // 2、设计SQL语句 $query = "SELECT * FROM teaminfo"; // 3、查询 $result = mysqli_query ( $link, $query ); // 4、处理结果集 $rownum = mysqli_num_rows ( $result ); // 获取结果集的行数 for($i = 0; $i < $rownum; $i ++) { $row = mysqli_fetch_assoc ( $result ); echo $row ['id'] . '===' . $row ['teamname'] . '<br>'; } // 5、释放结果集 mysqli_free_result ( $result ); // 6、关闭数据库连接 mysqli_close ( $link );
- 添加
// 1、建立和数据库的连接 $link = mysqli_connect ( '127.0.0.1', 'root', 'rootkit', 'football' ); if (!$link) { echo '数据库连接建立失败'; } // 2、设计SQL语句 $query = "INSERT INTO teaminfo(teamname) VALUES('厦门国贸')"; // 3、查询 $result = mysqli_query ( $link, $query ); // 4、处理结果集 if ($result) { echo '添加球队信息成功!'; } else { echo '添加球队信息失败!'; echo mysqli_error($link); // mysqli_free_result($result); // 6、关闭数据库连接 mysqli_close ( $link );
- 修改
// 1、建立和数据库的连接 $link = mysqli_connect ( '127.0.0.1', 'root', 'rootkit', 'football' ); if (!$link) { echo '数据库连接建立失败'; } // 2、设计SQL语句 $query = "UPDATE teaminfo SET teamname='厦门七匹狼' WHERE id=19"; // 3、查询 $result = mysqli_query ( $link, $query ); // 4、处理结果集 if ($result) { echo '更新球队信息成功!'; } else { echo '更新球队信息失败!'; echo mysqli_error($link); } // 5、释放结果集 // mysqli_free_result($result); // 6、关闭数据库连接 mysqli_close ( $link );
- 删除
// 1、建立和数据库的连接 $link = mysqli_connect ( '127.0.0.1', 'root', 'rootkit', 'football' ); if (!$link) { echo '数据库连接建立失败'; } // 2、设计SQL语句 $query = "DELETE FROM teaminfo WHERE id=17"; // 3、查询 $result = mysqli_query ( $link, $query ); // 4、处理结果集 if ($result) { echo '删除球队信息成功!'; } else { echo '删除球队信息失败!'; echo mysqli_error($link); } // 5、释放结果集 // mysqli_free_result($result); // 6、关闭数据库连接 mysqli_close ( $link );
上机练习:2018世界杯亚洲区赛程信息管理
使用mysqli实现以下用例:
- 实现登陆(赛程信息数据库需要增加一张用户表)
- 实现添加赛程信息
- 实现删除赛程信息
- 实现修改赛程信息
- 实现赛程信息的分页显示