第12天 PHP操作MySQL(一)
学习目标
PHP操作MySQL的步骤
PHP连接MySQL服务器
选择当前数据库
执行各种SQL语句
从结果集获取一行数据
综合案例:学生信息管理
phpMyAdmin****的使用方法
1)导入、导出数据库文件
2)创建和操作数据库
Navicat的使用方法
1)导入、导出数据库文件
2)创建和操作数据库
需求: 统计学生信息
思路:创建表单,输入学生信息,保存起来,并显示
前提:PHP必须开启操作mysql的扩展 php_mysqli.dll的扩展
说明:低版本的PHP操作mysql的扩展是php_mysql.dll,高版本的PHP,已经开始废弃php_mysql.dll,高版本的使用php_mysqli.dll和php_pdo.dll.
如何查看PHP有没有开启此扩展?
现在php.ini中开启扩展

去掉前面的 分号(;)

重启apache,然后在PHP脚本中使用phpinfo()进行查看,
或者使用php -m查看
phpinfo();


PHP操作MySQL的步骤:
1、PHP连接数据库
2、选择数据库
3、设置字符集
4、发送SQL语句
5、执行SQL语句
6、返回结果
7、释放资源
PHP连接MySQL服务器
1、mysqli_connect()
描述:连接到 MySQL服务器
语法:mysqli mysqli_connect([host][,username][,password][,dbname][,port])
参数:
host:MySQL服务器。可以包含端口号,默认值为“localhost:3306”
username:用户名。默认值是服务器进程所有者的用户名;
password:密码。
dbname:数据库名称。
port:MySQL服务器的端口号,默认为3306。
返回值:如果连接成功,则返回MySQLi连接对象。如果失败,则返回FALSE。

2、****mysqli_connect_error()
描述:返回上一个 MySQL 连接产生的文本错误信息
语法:string mysqli_connect_error ( void)
参数:没有参数。

3****、mysqli_close()
描述:关闭先前打开的数据库连接
语法:bool mysqli_close ( mysqli $link )

函数:
mysqli_error(连接资源) 错误信息
mysqli_errno(连接资源) 错误编号
选择当前数据库
描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
语法:bool mysqli_select_db(mysqli $link, string $database)
返回值:如果成功返回TRUE,失败则返回FALSE。

设置客户端字符集
描述:设置默认字符编码
语法:bool mysqli_set_charset ( mysqli charset )
返回:成功时返回 TRUE, 或者在失败时返回 FALSE。

执行各种SQL语句
mysqli_query()
描述:发送一条 MySQL 查询;
语法:resource mysqli_query(mysqli $link , string $query )
参数:
$query
是查询字符串;
$link
是创建的活动的数据库连接;
说明:mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysqli_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。
注意:查询字符串不应以分号结束,和命令行模式下有区别。

从结果集获取一行数据
1、mysqli_fetch_row()
Ø 描述:从结果集中取得一行作为索引数组;
Ø 格式:array mysqli_fetch_row ( mysqli_result $result )
Ø 返回:返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
Ø 说明:mysqli_fetch_row() 从指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
Ø 提示:依次调用mysqli_fetch_row()将返回结果集中的下一行,如果没有更多行则返回FALSE。
2、mysqli_fetch_assoc()
ü 描述:从结果集中取得一行作为关联数组
ü 语法:array mysqli_fetch_assoc ( mysqli_result $result )
ü 返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;
ü 注意:此函数返回的字段名大小写敏感。
3、mysqli_fetch_array()
ü 描述:从结果集中取得一行作为关联数组,或数字数组,或二者兼有;
ü 语法:array mysqli_fetch_array ( mysqli_result result_type = MYSQLI_BOTH ] )
ü 参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
ü 返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
ü 注意:本函数返回的字段名区分大小写。
4、mysqli_fetch_all()
ü 描述:从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
ü 语法:mixed mysqli_fetch_all ( mysqli_result resulttype = MYSQLI_NUM ] )

获取记录数
1、mysqli_num_rows()
ü 描述:取得结果集中行的数目
ü 语法:int mysqli_num_rows ( mysqli_result $result )
ü 说明:mysqli_num_rows()返回结果集中行的数目。
ü 注意:此命令仅对 SELECT 语句有效。

2、mysqli_affected_rows()
ü 描述:取得前一次 MySQL 操作所影响的记录行数;
ü 语法:int mysqli_affected_rows ( mysqli $link )
ü 说明:取得最近一次与 $link 关联的 INSERT、UPDATE 或 DELETE 查询所影响的记录行数。

特殊情况:

3、mysqli_insert_id()
ü 描述:取得上一次插入操作的主键ID;
ü 语法:int mysqli_affected_rows ( mysqli $link )
ü 说明:主要针对insert操作

综合案例:学生信息管理

1、创建数据库和表

2、制作表单 add.html


3、添加入库 add.php

4、展示数据 index.php

5、删除 del.php
index.php

del.php

6、修改
index.php

update.php

update.html


edit.php
