Presentation is loading. Please wait.

Presentation is loading. Please wait.

第21章 PHP MySQL专用接口动态网页设计

Similar presentations


Presentation on theme: "第21章 PHP MySQL专用接口动态网页设计"— Presentation transcript:

1 第21章 PHP MySQL专用接口动态网页设计

2 21.1 概述 PHP访问MySQL数据库的步骤 建立与MySQL数据库服务器的连接 选择要访问的数据库 执行SQL语句 存储查询结果
显示结果数据 关闭MySQL数据库服务器的连接

3 21.2.PHP与MySQL的连结与关闭 非永久性连接:
int mysql_connect(string [hostname][:port], string [username],string [password]); 非永久性连接关闭 int mysql_close(连接句柄); 永久性连接:可以返回以前连接的ID;无须关闭; 首次建立的连接一直有效。 int mysql_pconnect(string [hostname][:port],

4 <?php $Server="localhost"; $user="root"; $pass="your_password"; $db_cnd=mysql_connect($Server,$user,$pass); …… mysql_close($db_cnd); ?>

5 21.3 PHP对MySQL数据库操作 步骤 执行SQL语句 读取存储查询结果集 显示、操作结果记录数据
int mysql_query(string SQL查询字串,int [连接句柄]); 注释:SQL 语句对大小写不敏感。 CREATE DATABASE 数据库名 DROP DATABASE database_name

6 新建数据库 <?php $con = mysql_connect("localhost","root","passw");
if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created";} else {echo mysql_errno().":".mysql_error();} mysql_close($con); ?>

7 删除数据库 <?php $con = mysql_connect("localhost","root","");
mysql_query("DROP DATABASE my_db1",$con); mysql_close($con); ?>

8 选中数据库 int mysql_db_query(数据库名,查询语句,连接句柄); 对查询结果的存储的方式有两种: 使用数组的方式
使用类的方式。

9 查看数据库 int mysql_list_dbs(连接句柄); 返回指定连接中的所有能用的数据库名称

10 21.4 PHP对MySQL数据表操作 用mysql_query() 函数 查询数据表名
CREATE TABLE table_name(column_name1 data_type,column_name2 data_type, column_name3 data_type, ) DROP TABLE table_name SHOW COLUMNS FROM 表名 查询数据表名 mysql_list_tables()和mysql_tablename()。

11 创建表 <?php $con = mysql_connect("localhost","root",""); if (!$con)
{die('Could not connect: ' . mysql_error());} mysql_select_db("my_db", $con); $sql = "CREATE TABLE person (Name varchar(15),Gender varchar(15),Age int)"; mysql_query($sql,$con); mysql_close($con); ?>

12 < $con = mysql_connect("localhost","root",""); if (!$con) {die('Could not connect: ' . mysql_error());} mysql_select_db("my_db", $con); $sql = "drop TABLE teacher"; mysql_query($sql,$con); mysql_close($con); ?>

13 显示表结构 mysql_select_db("my_db", $con); $sql = "SHOW COLUMNS FROM person1"; $result=mysql_query($sql,$con); while($row = mysql_fetch_array($result)) { echo $row[0]. "\n"; echo $row[1]."\n"; echo $row[2]. "\n"; echo "<br>"; }

14 21.5 PHP对MySQL记录操作 添加记录 删除记录 修改记录 查询记录
INSERT INTO table_name VALUES (value1, value2,....) 删除记录 DELETE FROM table_name WHERE column_name = some_value 修改记录 UPDATE table_name SET column_name = new_value WHERE column_name = some_value 查询记录 SELECT column_name(s) FROM table_name

15 添加记录 <?php $con = mysql_connect("localhost","root","passw");
if (!$con) {die('Could not connect: ' . mysql_error());} mysql_select_db("my_db", $con); mysql_query("INSERT INTO person (Name, Gender, Age) VALUES ('Peter', 'male', '35')"); mysql_close($con); ?>

16 交互界面

17 $sql="INSERT INTO person (Name, Gender, Age)
VALUES('$_POST[Name]','$_POST[Gender]','$_POST[age]')"; if (!mysql_query($sql,$con)) {die('Error: ' . mysql_error());} echo "姓名: ".$_POST[Name]."<br><br>"; echo "性别: ".$_POST[Gender]."<br><br>"; echo "年龄: ".$_POST[age]."<br><br>"; echo "1 record added";

18 SELECT column_name(s) FROM table_name 对查询结果的存储的方式有两种:使用数组的方式和使用类的方式。
浏览数据 SELECT column_name(s) FROM table_name 对查询结果的存储的方式有两种:使用数组的方式和使用类的方式。 数组存储格式: array mysql_fetch_array(结果集,结果类型); 类存储格式: object mysql_fetch_object(结果集,结果类型);

19 5.存储查询结果—数组实例

20 5.存储查询结果—对象实例

21 5.存储查询结果 对查询结果的当前记录进行存储 array mysql_fetch_row(int 结果);
对查询结果中的某个具体的数据进行存储, int mysql_result(int 结果,int 记录序号, mixed 字段); 对查询所获取的结果的总数量进行统计 array mysql_num_rows (int 结果); 释放查询结果所占用的内存 boolean mysql_free_result(int result);

22 图22.9 将查询到的记录条数和指定字段数据显示在网页中
5.存储查询结果 图22.9 将查询到的记录条数和指定字段数据显示在网页中

23 表格显示 echo "<table border='1'> <tr> <th>姓名</th>
while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" .$row["Name"]. "</td>"; echo "<td>" .$row["Gender"]. "</td>"; echo "<td>" .$row["Age"]. "</td>"; echo "</tr>"; } echo "</table>";

24 多页显示

25 // 用URL 传递显示的页数 if(isset($_GET['page'])) {$page=$_GET['page'];} Else {$page=1;} if($page==1) { echo "<tr>"; echo "<td></td>"; echo "<td>" ; echo "<a href=\"index.php?page=".($page+1)."\">next </a>"; echo "</td>"; echo "<td>"; echo "<a href=\"index.php?page=".$pagenum."\">end page </a>"; echo "</tr>"; }

26 $num=mysql_num_rows ($result);
$pagenum=ceil($num/4); $offset=($page-1)*4; $query="select * from person2 limit $offset,4"; $result=mysql_query($query,$con);

27 查询记录 if(!$_POST[Name]) {$q="Name".$_POST[Name];} if(!$_POST[Gender])
{$q="Gender". $_POST[Gender];} if($_POST[age]) {$q="age".$_POST[age];} $sql=" select * from person2 where ".$q; $result=mysql_query($sql,$con);

28 23.8 修改记录

29 while($row = mysql_fetch_array($result))
{ echo "<tr>"; echo "<td>" .$row["Name"]. "</td>"; echo "<td>" .$row["Gender"]. "</td>"; echo "<td>" .$row["Age"]. "</td>"; // 把记录中id作为URL参数 echo "<td><a href=\"update.php?id="; echo $row["id"]; echo "\">"."修改". "</a></td>"; echo "</tr>"; }

30 $query="select. from person2 where id="
$query="select * from person2 where id=".$_GET["id"]; $result=mysql_query($query,$con); $row = mysql_fetch_array($result); ?> <form action="ok.php" method="get"> Name: <input type="text" name="Name" value= <?php echo $row["Name"];?> >

31 $query="update person2 set name='".$_GET["Name"].
"', gender='".$_GET["Gender"]."',age='".$_GET["age"]. "' where id='".$_GET["nid"]."'"; $result=mysql_query($query,$con); If($result) { echo "<script> alert('修改成功'); window.location.href='index.php'; </script>"; } else alert('修改失败');

32 echo "<input type='checkbox' name='checkbox[]' value='"
删除记录 echo "<input type='checkbox' name='checkbox[]' value='" .$row["id"]."'>"; for($i=0;$i<count($_GET["checkbox"]);$i++) { $query="delete from person2 where id='".$_GET["checkbox"][$i]."'"; $result=mysql_query($query,$con); }

33 错误代码、错误信息

34 第23章 小结 PHP对MySQL数据库的连结与关闭 PHP新建与删除数据库 PHP记录操作 PHP字段操作

35 第23章 思考问题 23.2 在PHP中对MySQL数据库的连接有哪两种,其区别是什么?
第23章 思考问题 23.2 在PHP中对MySQL数据库的连接有哪两种,其区别是什么? 23.4 在PHP中对MySQL数据库查询结果的存储的方式有哪两种?其区别是什么? 23.6 PHP获取MySQL错误信息的方法是什么? 23.8 PHP对MySQL数据库的操作完成后,为什么要有关闭“连接”? end


Download ppt "第21章 PHP MySQL专用接口动态网页设计"

Similar presentations


Ads by Google