学习要点

  • 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。

完整数据库访问步骤

  1. 建立数据连接
  2. 构建SQL语句
  3. 获取结果集
  4. 处理结果集
  5. 关闭结果集资源
  6. 关闭数据库连接

完整示例代码

  • 查询
// 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实现以下用例:

  1. 实现登陆(赛程信息数据库需要增加一张用户表)
  2. 实现添加赛程信息
  3. 实现删除赛程信息
  4. 实现修改赛程信息
  5. 实现赛程信息的分页显示

PHP16 PHP访问MySQL的更多相关文章

  1. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  2. PHP访问MySql数据库介绍

    在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...

  3. PHP的MySQL扩展:PHP访问MySQL的常用扩展函数

    来源:http://www.ido321.com/1024.html 一.PHP连接数据库及基本操作 MySQL采用的是’客户机/服务器’架构.使用PHP安装的MySQL扩展函数,和直接使用客户端软件 ...

  4. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  5. 本地tomcat访问mysql数据库

    虽然以前经常听人说起过tomcat,但是今天头一次使用tomcat. 1.Tomcat的安装过程: 首先应该从Apache官方网站上下载是用于Windows的.zip压缩包. 下面是相应的下载链接: ...

  6. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

  7. C#访问MySQL数据库(winform+EF)

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  8. python访问mysql和redis

    1. 修改mysql配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接) 2. 修改redis配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接), ...

  9. python访问mysql

    1,下载mysql-connector-python-2.0.4  pythoin访问mysql需要有客户端,这个就是连接mysql的库 解压后如下图: 双击lib 以windows为例 把mysql ...

随机推荐

  1. Mac 下的截图技巧

    最近想制作GIF图片,截图后,发现没有截出鼠标小效果,自己就查阅了一下资料,总结了不少的截图技巧,这里写下来,权当笔记,方便今后检索,方便别人共享. 方法一: 下载 QQ,在QQ的皮娜好设置里面设置截 ...

  2. grep在指定类型的文件中查找字符 (转载)

    转自:http://blog.csdn.net/qvbfndcwy/article/details/8127329 find -name '*.php'|xargs grep 'include'//在 ...

  3. 洛谷 - P2444 - 病毒 - AC自动机

    https://www.luogu.org/problemnew/show/P2444 有点恶心,不太明白fail的意义. #include<bits/stdc++.h> using na ...

  4. bzoj 3172: [Tjoi2013]单词【AC自动机】

    一眼AC自动机,就是先把串建一个自动机,标记每个串在自动机上的位置,然后加上间隔符连成一个串在自动机上跑,每跑到一个点就说明这个串以及它到root的所有点表示的串都要被更新一次 先在点上打上标记,最后 ...

  5. bzoj 4753: [Jsoi2016]最佳团体【01分数规划+二分+树上背包】

    01分数规划,二分答案然后把判别式变成Σp[i]-Σs[i]*mid>=0,然后树上背包判断,设f[i][j]为在i点子树里选j个的最大收益,随便背包一下就好 最丧病的是神卡常--转移的时候要另 ...

  6. bzoj 1566: [NOI2009]管道取珠【dp】

    想不出来想不出来 仔细考虑平方的含义,我们可以把它想成两个人同时操作,最后得到相同序列的情况 然后就比较简单了,设f[t][i][j]为放了t个珠子,A的上方管道到了第i颗珠子,B的上方管道到了第j颗 ...

  7. CF1059E Split the Tree(倍增)

    题意翻译 现有n个点组成一棵以1为根的有根树,第i个点的点权为wi,需将其分成若干条垂直路径使得每一个点当且仅当被一条垂直路径覆盖,同时,每条垂直路径长度不能超过L,点权和不能超过S,求最少需要几条垂 ...

  8. 在IDEA中使用JSP中的out内置对象,out.println()——println红色解决方法

    今天在学习JSP的时候,在jsp中使用out内置对象,开发工具用的是IDEA,结果如下图所示 郁闷了半天找度娘,可能关键字输的不准确,乱七八糟的方法一大堆,什么加依赖啊啥的,反正都不管用,最后找到一篇 ...

  9. 进程动态拦截注入API HOOK

    最近工作中遇到一个问题,需要通过程序界面进行判断程序的运行状态,刚开始认为很简单,不就是一个窗体控件获取,获取Button的状态和Text.刚好去年干过该事情,就没太在意,就把优先级排到后面了,随着项 ...

  10. Spring事务引发dubbo服务注册问题

    文章清单 1. 问题 2. 查找bug过程 3. 解决方案 使用spring boot+dubbo写项目,一个服务,之前是正常的,后来调用方出现空指针异常,第一反应提供方出了问题. 1. 看控制台,服 ...