与MySQL建立链接
直接使用PHP提供的函数。
连接指定的MySQL服务器
mysqli_connect()
$link = @mysqli_connect($host,$user,$password,$database,$port);
//$host 服务器的地址,一般为127.0.0.1
//$user 数据库的用户名
//$password 数据库密码
//$database 与MySQL建立连接时,所选择的数据库的名字。[可选]
//$port 连接数据库时,所使用的端口[可选]
如果连接成功,返回object(mysql1);否则,返回bool(false) $link 是对象类型的变量,相当于一个“令牌”。
连接错误时的提示
mysqli_connect_errno(); //返回最后一次连接调用的错误代码
mysqli_connect_error(); //返回一个字符串描述的最后一次连接调用的错误代码
设置默认字符编码
mysqli_set_charset($link,'utf-8');
选择特定的数据库
mysqli_select_db($link,'bbs');
关闭与mysql服务器的连接
mysqli_close($link);
执行SQL语句
对数据库执行一条SQL语句
$sql = "select message.id,user.username,message.title
from user,message where message.uid=user.id";
$results = mysqli_query($link,$sql);
var_dump($results); // object(mysql_result)#2
//$link 与mysql 交互的“令牌”
//$sql 执行的SQL语句
//$results 结果对象耦合
- 如果SQL语句正常执行,就会返回对象类型object(mysqli_result)#2 的数据;否则,返回bool(false).
- 对于insert,delete,update 等不会返回数据的SQL语句,在执行没有返回错误时将返回true
- 对于返回数据的SQL语句执行成功的时候会返回结果集对象,可以使用操作结果集对象的函数来从中获取数据。
- MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT决定了mysqli client和server之间取结构集的方式。
- MYSQL_STORE_RESULT下,执行SQL时提取结果集返回给client,并分配内存,存储到用户程序空间中。之后mysqli_fetch_array()相当于从本地读取数据;
- MYSQL_USE_RESULT方式下,mysqli_fetch_array()每次都要向server请求结果行。
- MYSQL_USE_RESULT,执行SQL的时候并没有从server 将结果集取回。
SQL语句错误
如果在执行SQL语句的时候发生错误,以上两个函数都将返回false。并且可以使用以下函数处理错误原因。
die("[".mysqli_errno($link)."]")".mysqli_error($link));
//$link 与mysql交互的令牌
操作结果集对象的函数
从结果集对象中解析数据的常见参数
函数速查
函数 | 说明 |
mysqli_fetch_row() | 以索引数组的方式获取一条记录的数据 |
mysqli_fetch_assoc() | 以关联数组的方式获取一条记录的数据 |
mysqli_fetch_array() | 已索引数组或关联数组的方式获取一条记录的数据 |
mysqli_fetch_all() | 以索引数组或关联数组的方式获取全部记录的数据 |
mysqli_num_rows() | 取出结果中行的数量 |
mysqli_free_result() | 释放与一个结果集合相关的内存 |
mysqli_num_rows()
mysqli_num_rows($results);
// 4
//$results 结果集对象
mysqli_fetch_row()
$result = mysqli_fetch_row($results); //array(3)
$result = mysqli_fetch_row($results); //array(3)
$result = mysqli_fetch_row($results); //array(3)
$result = mysqli_fetch_row($results); //array(3)
$result = mysqli_fetch_row($results); // null
mysqli_fetch_assoc()
while($result = mysqli_fetch_assoc($results)){
var_dum($result)
}
其他常用函数
mysqli_real_escape_string()
转义用于SQL语句中的特殊字符防止SQL语句出错
string mysqli_real_escape_string (mysqli $link,string $escapestr);
最慢的步伐不是缓慢而是徘徊,
最快的脚步不是跨越而是继续。
---------------------------《日记本》