php学习笔记——PHP连接MySQL服务器

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不会讲原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录才会被返回。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值