PHP MySql数据库访问
计应134 凌豪
1.MySql数据库的连接
要操作MySql数据库,首先必须与MySQl数据库建立连接,连接MySQL服务器的语句如下:
<?php
$link = mysql_connect("localhost", "root", "root") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error()); //连接Mysql服务器
if($link){ echo "数据源连接成功!";}?>2.选择MySQL数据库
在连接到MySQl数据库服务器之后,使用mysql_select_db()函数来选择数据库,其实例代码如下:
<?php
$link = mysql_connect("localhost", "root", "root") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error()); //连接Mysql服务器$db_selected=mysql_select_db("db_database18",$link);//$db_selected=mysql_query("use db_database18",$link);if($db_selected){ echo "数据库选择成功!";}?>3.使用mysql_query()函数执行SQL语句
要对数据库中的表进行操作,通常使用mysql_query()函数执行SQL语句,其基本语法格式如下:
mysql_query(string query[,resource link_indentifier])
4.向数据库发送查询
<?php
// 实例化mysqli类 $mysqliConn = new mysqli(); // 连接服务器,并选择一个数据库 // 错误的密码 $mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test'); if ($mysqliConn->connect_error) { printf("Unable to connect to the database:%s", $mysqliConn->connect_error); exit(); } // 与数据库交互 $query = 'select firstname, lastname, email from tb_test;'; // 发送查询给MySQL $result = $mysqliConn->query($query); // 迭代处理结果集 while (list($firstname, $lastname, $email) = $result->fetch_row()) { printf("%s %s's email:%s<br/>", $firstname, $lastname, $email); } // 关闭连接 $mysqliConn->close(); ?>5.插入、更新和删除数据
插入、更新和删除使用的是insert、update和delete查询完成的,其做法实际上与select查询相同。示例代码如下:
<?php
// 实例化mysqli类 $mysqliConn = new mysqli(); // 连接服务器,并选择一个数据库 // 错误的密码 $mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test'); if ($mysqliConn->connect_error) { printf("Unable to connect to the database:%s", $mysqliConn->connect_error); exit(); } // 与数据库交互 $query = 'select firstname, lastname, email from tb_test;'; // 发送查询给MySQL $result = $mysqliConn->query($query); // 迭代处理结果集 while (list($firstname, $lastname, $email) = $result->fetch_row()) { printf("%s %s's email:%s<br/>", $firstname, $lastname, $email); } $query = "delete from tb_test where firstname = 'Yuan';"; $result = $mysqliConn->query($query); // 告诉用户影响了多少行 printf("%d row(s) have been deleted.<br/>", $mysqliConn->affected_rows); // 重新查询结果集 $query = 'select firstname, lastname, email from tb_test;'; // 发送查询给MySQL $result = $mysqliConn->query($query); // 迭代处理结果集 while (list($firstname, $lastname, $email) = $result->fetch_row()) { printf("%s %s's email:%s<br/>", $firstname, $lastname, $email); } // 关闭连接 $mysqliConn->close(); ?>5.MySQL分页显示公告
有时候在查询一些数据时,为了更加方便的浏览查询出的信息内容,最好的方法就是通过分页来显示公告信息的内容
下面主要是使用select语句动态检索数据库中的公告信息,并通过分页技术完成对数据库中公告信息的分页输出,主要部分代码如下:
<?php
$conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error()); mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error()); mysql_query("set names gb2312"); /* $_GET[page]为当前页,如果$_GET[page]为空,则初始化为1 */ if ($_GET[page]==""){ $_GET[page]=1;} if (is_numeric($_GET[page])){ $page_size=4; //每页显示4条记录 $query="select count(*) as total from tb_affiche order by id desc"; $result=mysql_query($query); //查询符合条件的记录总条数 $message_count=mysql_result($result,0,"total"); //要显示的总记录数 $page_count=ceil($message_count/$page_size); //根据记录总数除以每页显示的记录数求出所分的页数 $offset=($_GET[page]-1)*$page_size; //计算下一页从第几条数据开始循环 $sql=mysql_query("select * from tb_affiche order by id desc limit $offset, $page_size"); $row=mysql_fetch_object($sql); if(!$row){ echo "<font color='red'>暂无公告信息!</font>"; } do{ ?> <?php }while($row=mysql_fetch_object($sql)); } ?> </table> <br> <table width="550" border="0" cellspacing="0" cellpadding="0"> <tr> <!-- 翻页条 --> <td width="37%"> 页次:<?php echo $_GET[page];?>/<?php echo $page_count;?>页 记录:<?php echo $message_count;?> 条 </td>
<td width="63%" align="right"> <?php /* 如果当前页不是首页 */ if($_GET[page]!=1){ /* 显示“首页”超链接 */ echo "<a href=page_affiche.php?page=1>首页</a> "; /* 显示“上一页”超链接 */ echo "<a href=page_affiche.php?page=".($_GET[page]-1).">上一页</a> "; } /* 如果当前页不是尾页 */ if($_GET[page]<$page_count){ /* 显示“下一页”超链接 */ echo "<a href=page_affiche.php?page=".($_GET[page]+1).">下一页</a> "; /* 显示“尾页”超链接 */ echo "<a href=page_affiche.php?page=".$page_count.">尾页</a>"; } mysql_free_result($sql); mysql_close($conn); ?>