BBS 的设计。
0x01 PHP 与MySQL进行交互建立与MySQL链接实行SQL 语句操作结果集工具关闭与MySQL 链接0x02 与MySQL 建立链接直策应用PHP 供应的函数。
mysqli_connect()

$link=@mysqli_connect($host, $user, $password,$database,$port);//$host 做事器的地址,一样平常为127.0.0.1//$user 数据库的用户名//$password 数据库的密码//$database 与MySQL 建立连接时,所选择的数据库名字。[可选]//$port 连接数据库时,所利用的端口[可选]
如果链接成功,返回object(mysqli)1 ;否则,返回bool(false)$link 是工具类型的变量,相称于一个"令牌"。连接缺点时的提示
mysqli_connect_errno(); //返回末了一次连接调用的缺点代码mysqli_connect_error(); //返回一个字符串描述的末了一次连接调用的缺点代码
设置默认字符编码
mysqli_set_charset ($link,'utf-8);
选择特定的数据库
mysqli_select_db($link,'bbs');
关闭与mysql做事器的连接
mysqli_close($link);
0x03 执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(mysqli_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 之间取结果集的办法。MYSQLI_STORE_RESULT下,实行SQL时提取结果集返回给client,并分配内存,存储到用户程序空间中,之后mysqli_fetch_array() 相称于是从本地取数据;MYSQLI_USE_RESULT办法下,mysqli_fetch_array()每次都要向server要求结果行。MYSQLI_USE_RESULT,实行SQL的时候并没有从server 将结果集取回。
如果在实行SQL语句的时候发生缺点,以上两个函数都将返回false。 并且可以利用以下函数处理缺点缘故原由:
die("[".mysqli_errno($link)."]".mysqli_error($link));//$link 与MySQL 数据库交互的令牌
0x04 操作结果集工具的函数
从结果集工具中解析数据的常见函数
函数速查函数解释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_dump($result);}
大略运用
<?php<?php/ 结果集工具$results 有几条记录 循环就实行几次 表格就有几行(除了表头以外) 就有几个<tr> 标签 每条记录有几个字段 数组中有多少个元素。 每一行中就有几个单元格 便是几个<td> 标签。/while($result = mysqli_fetch_assoc($results)){ echo "<tr>"; foreach($result as $k => $v){ if($k == "title"){ $html = "<td> <a href = './messageShow.php?id={$result['id']}' target = '_blank'> {$v} </a></td>"; echo $html; }else{ echo "<td>"; echo $v; echo "</td>"; } } echo "</tr>";}?>
0x05 其他常用函数mysqli_real_escape_string()
转义用于SQL语句中的分外字符防止SQL语句出错
string mysqli_real_escape_string ( mysqli $link , string $escapestr );