1.mysqli_connect()
实例
打开一个到 MySQL 服务器的新的连接:
<?php
$con=mysqli_connect("localhost","wrong_user","my_password","my_db");
// 检查连接
if (!$con)
{
die("连接错误: " . mysqli_connect_error());
}
?>
定义和用法
mysqli_connect() 函数打开一个到 MySQL 服务器的新的连接。
语法
mysqli mysqli_connect(host,username,password,dbname,port,socket);
参数 | 描述 |
---|---|
host | 可选。规定主机名或 IP 地址。 |
username | 可选。规定 MySQL 用户名。 |
password | 可选。规定 MySQL 密码。 |
dbname | 可选。规定默认使用的数据库。 |
port | 可选。规定尝试连接到 MySQL 服务器的端口号。 |
socket | 可选。规定 socket 或要使用的已命名 pipe。 |
技术细节
返回值: | 返回一个代表到 MySQL 服务器的连接的对象。 |
---|---|
PHP 版本: | 5+ |
<?php
//(1)数据库配置信息
$db_host="localhost"; //主机名
$db_port="3306"; //端口号
$db_user="root"; //用户名
$db_pass="root"; //密码
$db_name="dbname"; //数据库名
$charset="utf8"; //字符集
//(2)PHP连接MySQL服务器
if(!$link=@mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
{
echo "<h2>PHP连接MySQL服务器失败!</h2>";
echo "系统错误信息:".mysqli_connect_error();
die(); //中止程序向下运行,也可以用 exit([string $string])
}
//(3)选择当前数据库
if(!mysqli_select_db($link,$db_name))
{
echo "<h2>选择数据库{$db_name}失败!</h2>"
die();
}
//(4)设置数据库返回数据字符集
mysqli_set_charset($link,$charset);
//(5)执行查询的SQL语句
$sql="SELECT * FROM Student";
//$sql="UPDATE student SET salary=salary+200 WHERE id=5";
$result=mysqli_query($link,$sql);
//(6)从结果集中获取一行数据,并作为枚举数组返回(int作为下标,从0开始)
while($arr=mysqli_fetch_row($result))//第一次获取第一行,第二次调用获取到第二行
{
print_r($arr);
}
//(7)从结果集中获取一行数据,并作为关联数组返回(字段名作为下标)
//$arr=mysqli_fetch_assoc($result);
//print_r($arr);
//echo arr['edu'];
//(8)从结果集中获取一行数据,并作为关联数组,或索引数组,或两者兼有
//MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
//$arr=mysqli_fetch_array($result,MYSQLI_ASSOC);
//$arr=mysqli_fetch_array($result);
//print_r($arr);
//echo arr['edu'];
//(9)从结果集中获取所有数据,并作为关联数组,或索引数组,或两者兼有
//MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
//$arrs=mysqli_fetch_all($result,MYSQLI_ASSOC);
//$arrs=mysqli_fetch_all($result);
//print_r($arrs);
//(10)从结果集中获取记录数
$records=mysqli_num_rows($result);
echo "记录数为:$records";
//(11)手动销毁结果集变量
mysqli_free_result($result);
//假设数据已经获取到,不需要再占着连接通道,即时关闭
mysqli_close($link);
2.@屏蔽错误
加载函数前,防止页面出错时,暴露连接信息
3.exit()和die()
4.sqli_connect_error()
实例
返回上一次连接错误的错误描述:
<?php
$con=mysqli_connect("localhost","wrong_user","my_password","my_db");
// 检查连接
if (!$con)
{
die("连接错误: " . mysqli_connect_error());
}
?>
定义和用法
mysqli_connect_error() 函数返回上一次连接错误的错误描述。
语法
string mysqli_connect_error(void);
技术细节
返回值: | 返回一个描述错误的字符串。如果没有错误发生则返回 NULL。 |
---|---|
PHP 版本: | 5+ |
5.mysqli_close()
实例
关闭先前打开的数据库连接:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// ....一些 PHP 代码...
mysqli_close($con);
?>
定义和用法
mysqli_close() 函数关闭先前打开的数据库连接。
语法
bool mysqli_close(mysqli $connection);
参数 | 描述 |
---|---|
connection | 必需。规定要关闭的 MySQL 连接。 |
技术细节
返回值: | 如果成功则返回 TRUE,如果失败则返回 FALSE。 |
---|---|
PHP 版本: | 5+ |
6.选择当前数据库
bool mysqli_select_db(mysqli $link,string $database)
7. 设置客户端字符集
bool mysqli_set_charset(mysqli $link,string $charset)
8.执行各种SQL语句
resource mysqli_query(mysqli $link,string $query)
9.mysqli_free_result()
void mysqli_free_result(mysqli_result $result)
内存中的变量何时消失
(1)网页执行完毕,所有与本网页相关的变量自动销毁
(2)手动销毁指定的变量
注意:使用SELECT等查询有结果集时,才能释放。使用UPDATE返回的是boolean,释放会出错。
10.从结果集获取一行数据
(1)array mysqli_fetch_row(mysqli_result $result)
从结果集中取得一行作为枚举数组
(网上有说关联数组就是枚举数组的,也有说枚举数组和索引数组没啥区别,反正出来的数组是带int 下标的)
调用一次获取一行,第N次获取N行数据
提示:依次调用mysqli_fetch_row()将返回结果集中的下一行,如果没有更多行则返回FALSE。
===================================================================
关联数组的下标也就是key值可以是无序的,一般是字符串类型;比如:array('one'=>'1','three'=>'2', 'fore'=>'3')
;
索引数组的下标(key)是有序的,一般为int
型,比如:array('one', 'two', 'three')
这个数组默认的下标就是0,1,2
;(另外:索引数组的下标默认从0开始)
===================================================================
(2)array mysqli_fetch_assoc(mysqli_result $result)
从结果集中取得一行作为关联数组
注意:此函数返回的字段名大小写敏感
(3)array mysqli_fetch_arry(mysqli_result $result[,int $result_type=MYSQLI_BOTH])
从结果集中取得一行作为关联数组,或数字数组,或二者兼有(不写参数的时候)
参数:$result_type是一个常量,MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
注意:本函数返回的字段名区分大小写
(4)mixed mysqli_fetch_all(mysqli_result $result[,int $resulttype=MYSQLI_NUM] )
从结果集中取得所有行作为索引数组、枚举数组、或二者兼有
10.获取记录数
(1)int mysqli_num_rows(myusqli_result $result)
取得结果集中行的数目
注意:此命令仅对select语句有效
(2)int mysqli_affected_rows(mysqli $link)
取得前一次MySQL操作所影响的记录行数
取得最近一次与 $link关联的SELECT、INSERT、UPDATE或DELETE查询所影响的记录行数
注意:如果最近一次查询失败,函数返回-1。当使用updata查询,MySQL不会讲原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录才会被返回。