1.PHP连接MySQL服务器
Ⅰ.mysqli_connect()
➀描述:连接到 MySQL服务器
➁语法:mysqli mysqli_connect([host][,username][,password][,dbname][,port])
➂参数:
host:MySQL服务器。可以包含端口号,默认值为“localhost:3306”
username:用户名。默认值是服务器进程所有者的用户名;
password:密码。
dbname:数据库名称。
port:MySQL服务器的端口号,默认为3306。
返回值:如果连接成功,则返回MySQLi连接对象。如果失败,则返回FALSE。
Ⅱ.mysqli_connect_error()
➀描述:返回上一个 MySQL 连接产生的文本错误信息
➁语法:string mysqli_connect_error ( void)
➂参数:没有参数。
Ⅲ.mysqli_close()
➀描述:关闭先前打开的数据库连接
➁语法:bool mysqli_close ( mysqli $link )
Ⅳ.选择当前数据库
➀描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
➁语法:bool mysqli_select_db(mysqli database)
➂返回值:如果成功返回TRUE,失败则返回FALSE。
Ⅴ.设置客户端字符集
➀描述:设置默认字符编码
➁语法:bool mysqli_set_charset ( mysqli charset )
➂返回:成功时返回 TRUE, 或者在失败时返回 FALSE。
PHP连接Mysql服务器失败!";
echo "系统错误信息:".mysqli_connect_error();//mysqli_connect_error() 返回的信息是 gbk 的
// printf ($str, iconv('gbk', 'utf-8', mysqli_connect_error())); //要 utf-8 的话就转一下码
//die()输出一个消息并且退出当前脚本
die();//输出空并中止程序向下运行
}
//4.选择当前数据库
if(!mysqli_select_db($link,$db_name)){
echo "选择数据库{$db_name}失败!
";
die();
}
//5.设置数据库返回数据字符集
mysqli_set_charset($link,$charset);
//6.假设数据已经获取到,不需要再占着连接通道,及时关闭
//如果用户特别多,每人节省0.01s也是很长的时间
mysqli_close($link);
?>
2.PHP中执行SQL语句
PHP不认识SQL语句,要把它发给MySql去运行
Ⅰ.mysqli_query():
➀描述:发送一条 MySQL 查询;
➁语法:resource mysqli_query(mysqli $link
, string $query
)
➂参数:
$query
是查询字符串;
$link
是创建的活动的数据库连接;
说明:mysqli_query() 仅对 select,show 或 describe 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 bool(false)。对于其它类型的 SQL 语句,mysqli_query()在执行成功时返回 bool(false)
Ⅱ.从结果集中取数据
mysqli_fetch_row()
➀描述:从结果集中取得一行作为枚举数组;
➁格式:array mysqli_fetch_row ( $result )
➂返回:返回根据所取得的行生成的数组,如果没有更多行则返回 false。
说明:mysqli_fetch_row() 从指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
提示:依次调用mysqli_fetch_row()将返回结果集中的下一行,如果没有更多行则返回false
mysqli_fetch_assoc()
➀描述:从结果集中取得一行作为关联数组
➁语法:array mysqli_fetch_assoc ($result )
➂返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;
注意:此函数返回的字段名大小写敏感。
mysqli_fetch_array() 重点!
➀描述:从结果集中取得一行作为关联数组,或数字数组,或二者兼有;
➁语法:array mysqli_fetch_array ( $result
, result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
注意:本函数返回的字段名区分大小写。
mysqli_fetch_all() 重点!
➀描述:从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
➁语法:mixed mysqli_fetch_all ( $result
, $result_type )
提示:获取数据,要不是获取一条,要不是获取多条。
mysqli_free_result()
➀描述:释放与结果集相关联的内存
➁语法:void mysqli_free_result ( $result
)
➂参数:$result为结果集对象。
内存中的变量何时消失:
(1)网页执行完毕,所有与本网页相关的变量自动销毁;
(2)手动销毁指定的变量。
PHP连接Mysql服务器失败!";
echo "系统错误信息:".mysqli_connect_error();//mysqli_connect_error() 返回的信息是 gbk 的
// printf ($str, iconv('gbk', 'utf-8', mysqli_connect_error())); //要 utf-8 的话就转一下码
//die()输出一个消息并且退出当前脚本
die();//输出空并中止程序向下运行
}
//4.选择当前数据库
if(!mysqli_select_db($link,$db_name)){
echo "选择数据库{$db_name}失败!
";
die();
}
//5.设置数据库返回数据字符集
mysqli_set_charset($link,$charset);
//6.执行查询的sql语句
//6.1查询
$sql = "select * from student";
$result = mysqli_query($link,$sql);
var_dump($result);//返回一个对象object
echo "
";
//6.2更新
// $sql = "update student set name = 'guoman' where id=3" ;
// $result = mysqli_query($link,$sql);
// var_dump($result);//bool(true)
// echo "
";
//7.从结果集中取枚举数据
//取得一行数据作为枚举数组(数组的下标是整数)
// $arr = mysqli_fetch_row($result);
//print_r() 可以打印出复杂类型变量的值(如数组,对象)
//print_r($arr);//网页输出Array ( [0] => 1 [1] => baojun [2] => 27 )
//取得所有枚举数据
// while($arr = mysqli_fetch_row($result)){
// print_r($arr);
// }
//8.从结果集中取关联数据
//$arr = mysqli_fetch_assoc($result);
//print_r($arr);//网页输出Array ( [id] => 1 [name] => baojun [age] => 27 )
//echo $arr['name'];//网页输出baojun
//取得所有关联数据
// while($arr = mysqli_fetch_assoc($result)){
// print_r($arr);
// }
//9.从结果集中取一行枚举或关联数据(此种方法可以直接替代上面两种,实际常用)
//没有指定第二个参数的话,默认两种下标的数组共存
//第二个参数:MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
// $arr = mysqli_fetch_array($result,MYSQLI_NUM);
// $arr = mysqli_fetch_array($result,MYSQLI_ASSOC);
// print_r($arr);
//10.从结果集取得所有枚举或关联数据
//没有第二个参数的话,默认是关联数组
//第二个参数:MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
$arrs = mysqli_fetch_all($result);
print_r($arrs);
//11.手动销毁结果集变量
//提前销毁,优化网站响应时间
mysqli_free_result($result);
//12.假设数据已经获取到,不需要再占着连接通道,及时关闭
//如果用户特别多,每人节省0.01s也是很长的时间
mysqli_close($link);
?>
Ⅲ.获取记录数
mysqli_num_rows()
➀描述:取得结果集中行的数目
➁语法:int mysqli_num_rows ($result )
说明:mysqli_num_rows()返回结果集中行的数目。
注意:此命令仅对 select 语句有效。
mysqli_affected_rows()
➀描述:取得前一次 MySQL 操作所影响的记录行数;
➁语法:int mysqli_affected_rows ( mysqli link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录行数。
注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。
PHP连接Mysql服务器失败!";
echo "系统错误信息:".mysqli_connect_error();//mysqli_connect_error() 返回的信息是 gbk 的
// printf ($str, iconv('gbk', 'utf-8', mysqli_connect_error())); //要 utf-8 的话就转一下码
//die()输出一个消息并且退出当前脚本
die();//输出空并中止程序向下运行
}
//4.选择当前数据库
if(!mysqli_select_db($link,$db_name)){
echo "选择数据库{$db_name}失败!
";
die();
}
//5.设置数据库返回数据字符集
mysqli_set_charset($link,$charset);
//6.执行查询的SQL语句,返回结果集对象
// $sql = "select * from student";
// $result = mysqli_query($link,$sql);
//7.从结果集中获取记录数,只能用于select语句
// $records = mysqli_num_rows($result);
// echo "记录数为:$records";//网页数据为:记录数为:3
//8.从结果集中获取受影响的行数
$sql = "update student set age = age+2 where id<3";
mysqli_query($link,$sql);
$records = mysqli_affected_rows($link);
echo "共有{$records}个人更新成功";//网页数据为:记录数为:3
//9.手动销毁结果集变量
//提前销毁,优化网站响应时间
// mysqli_free_result($result);
//10.假设数据已经获取到,不需要再占着连接通道,及时关闭
//如果用户特别多,每人节省0.01s也是很长的时间
mysqli_close($link);
?>