一、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。
//数据库配置信息
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '666666';
$db_name = 'hsz';
$charset = 'utf8';
//PHP连接mysql服务器:成功返回mysqli对象,失败返回false
$link = mysqli_connect($db_host,$db_user,$db_pass,$db_name);
//打印变量的类型和值
var_dump($link);
结果如下:
图片.png
2、@运算符
①PHP 支持一个错误控制运算符@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉(不包括语法错误)。
②@ 运算符只对表达式有效。
③对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include调用,常量等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
3、exit()或die()
①描述:输出一个消息并且退出当前脚本,等同于die()。
②语法:void exit ([ string $string ] )
③说明:输出 $string 的值,并中止程序的运行。
④返回值:没有返回值
图片.png
4、mysqli_connect_error()
①描述:返回上一个 MySQL 连接产生的文本错误信息
②语法:string mysqli_connect_error ( void)
③参数:没有参数。
图片.png
5、选择当前数据库
①描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
②语法:bool mysqli_select_db(mysqli
database)
③返回值:如果成功返回TRUE,失败则返回FALSE。
图片.png
6、设置客户端字符集
①描述:设置默认字符编码
②语法:bool mysqli_set_charset ( mysqli $link , string $charset )
③返回:成功时返回 TRUE, 或者在失败时返回 FALSE。
图片.png
7、执行各种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 的返回值意味着查询是合法的并能够被服务器执行。
⑤注意:查询字符串不应以分号结束,和命令行模式下有区别。
图片.png
8、mysqli_free_result()
①描述:释放与结果集相关联的内存
②语法:void mysqli_free_result ( mysqli_result $result )
③参数:$result为结果集对象。
图片.png
9、mysqli_close()
①描述:关闭先前打开的数据库连接
②语法:bool mysqli_close ( mysqli $link )
图片.png
二、从结果集获取数据
1、mysqli_fetch_row()
①描述:从结果集中取得一行作为枚举数组;
②格式:array mysqli_fetch_row ( mysqli_result $result )
③返回:返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
④说明:mysqli_fetch_row() 从指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
⑤提示:依次调用mysqli_fetch_row()将返回结果集中的下一行,如果没有更多行则返回FALSE。
图片.png
2、mysqli_fetch_assoc()
①描述:从结果集中取得一行作为关联数组
②语法:array mysqli_fetch_assoc ( mysqli_result $result )
③返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;
④注意:此函数返回的字段名大小写敏感。
图片.png通过循环获取所有行:
图片.png
3、mysqli_fetch_array()
①描述:从结果集中取得一行作为关联数组,或数字数组,或二者兼有;
②语法:array mysqli_fetch_array ( mysqli_result $result [, int $result_type = MYSQLI_BOTH ] )
③参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
④返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
⑤注意:本函数返回的字段名区分大小写。
图片.png
4、mysqli_fetch_all()
①描述:从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
②语法:mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )
图片.png
三、获取记录数
1、mysqli_num_rows()
①描述:取得结果集中行的数目
②语法:int mysqli_num_rows ( mysqli_result $result )
③说明:mysqli_num_rows()返回结果集中行的数目。
④注意:此命令仅对 SELECT 语句有效。
图片.png
2、mysqli_affected_rows()
①描述:取得前一次 MySQL 操作所影响的记录行数;
②语法:int mysqli_affected_rows ( mysqli $link )
③说明:取得最近一次与 $link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录行数。
④注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。
图片.png
综合代码示例:
//数据库配置信息
$db_host="localhost";
$db_user="root";
$db_pass="666666";
$db_name="phphx";
$db_charset="utf8";
//php连接mysql服务器,成功返回mysqli对象,失败返回false
@$link=mysqli_connect($db_host,$db_user,$db_pass);
//判断连接mysql服务器是否成功
if(!$link){
echo "连接数据库服务器失败!";
die();
}
//判断连接到当前的mysql数据库是否成功
if(!mysqli_select_db($link,$db_name)){
echo "连接数据库失败!";
die();
}
//设置字符集
mysqli_set_charset($link,$db_charset);
//执行查询的sql语句,成功返回结果集资源,失败返回false
$sql="select * from student where id>30 and id<40";
$result=mysqli_query($link,$sql);
//从结果集中取得一行作为枚举数组
//print_r(mysqli_fetch_row($result));
//从结果集中取得一行作为关联数组
//print_r(mysqli_fetch_assoc($result));
//从结果集中取得一行作为关联数组,或数字数组,或二者兼有
//print_r(mysqli_fetch_array($result,MYSQLI_ASSOC));
//从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
print_r(mysqli_fetch_all($result,MYSQLI_ASSOC));
//取得结果集中行的数目
echo "查询到数据总数:".mysqli_num_rows($result);
//执行更新的sql语句
$sql2="update student set salary=salary+200 where age>22";
mysqli_query($link,$sql2);
//取得已更新的数据的总数
echo "共更新数据总数:".mysqli_affected_rows($link);
//释放结果集所占的内存空间
mysqli_free_result($result);
//关闭数据库连接
mysqli_close($link);