Download presentation
Presentation is loading. Please wait.
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
Similar presentations