PHP学习笔记之三 数据库基本操作


Posted in PHP onJanuary 17, 2011

下面是在Linux上登录mysql,创建数据库和创建表的过程。

yin@yin-Ubuntu10:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 360
Server version: 5.1.41-3ubuntu12.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database UseCase;
Query OK, 1 row affected (0.00 sec)

mysql> use UseCase;
Database changed

mysql> create table User(UserName varchar(20) primary key,Password varchar(20) not null,CreateTime timestamp default current_timestamp);
Query OK, 0 rows affected (0.01 sec)下面就来建立一个页面来完成新建用户的页面。首先是一个简单的表单:

<form action="db.php" method="post"> 
<dl> 
<dt>UserName</dt><dd><input name="UserName" maxlength="20" type="text"/></dd> 
<dt>Password</dt><dd><input name="Password" maxlength="20" type="password"/></dd> 
<dt>Confirm Password</dt><dd><input name="ConfirmPassword" maxlength="20" type="password"/></dd> 
</dl> 
<input type="submit" name="ok" value="ok"/> 
</form>

PHP通过$_POST数组来获得通过post方法提交的表单中的数据。在PHP程序中,我们首先要判断是有OK字段,从而判断出该页面是首次访问,还是用户点击OK后提交的,接着判断两次密码输入是否统一。然后就可以获取到用户名和密码,插入数据库中。PHP连接MySQL数据库一般可以利用mysql扩展或者mysqli扩展,mysqli扩展比较新一点,这里我们采用这种方式。mysqli可能需要安装配置下,不过在我的环境中是默认装好的。利用mysqli扩展操作数据库一般分为如下几步:构造mysqli对象,构造statement,绑定参数,执行,关闭。代码如下:
<?php 
$match=true; 
if(isset($_POST["ok"])) { 
$pwd=$_POST["Password"]; 
$pwdConfirm=$_POST["ConfirmPassword"]; 
$match=($pwd==$pwdConfirm); 
$conn=new mysqli("localhost","root","123","UseCase"); 
if (mysqli_connect_errno()) { 
printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); 
} 
$query="insert into User(UserName,Password) values(?,?)"; 
$stmt=$conn->stmt_init(); 
$stmt->prepare($query); 
$stmt->bind_param('ss',$name,$pwd); 
$name=$_POST["UserName"]; 
$pwd=$_POST["Password"]; 
$stmt->execute(); 
if($stmt->errno==0) { 
$success=true; 
}else { 
$success=false; 
} 
$stmt->close(); 
$conn->close(); 
} 
?>

其中bind_param方法需要稍微解释下,第一个参数的含义是参数类型。每个字符对应一个参数,s表示字符串,i表示整数,d表示浮点数,b表示blob。最后,再为这个页面添加一点提示信息:
<?php 
if(!$match) { ?> 
<p>Password and Confirm Password must match.</p> 
<?php 
} 
?> 
<?php 
if(isset($success)) { 
if($success) { 
echo '<p>User Created Successfully!'; 
}elseif($sucess==false) { 
echo '<p>User Name existed.'; 
} 
} 
?>

再接下来,我们编写一个用户列表页面。
<table> 
<tr><th>User Name</th><th>CreateTime</th><th>Action</th> 
</tr> 
<?php 
include 'conn.php'; 
$query="select * from User;"; 
$res=$mysql->query($query); 
while($row=$res->fetch_array()) { 
?> 
<tr> 
<td><?= $row['UserName'] ?></td> 
<td><?= date('Y-m-d',strtotime($row['CreateTime']))?> </td> 
<td><a href="UserEdit.php?action=update&ID=<?= $row['UserName'] ?>">Edit</a> 
<a href="action=delete&ID=<?= $row['UserName'] ?>">Delete</a> 
</td> 
</tr> 
<?php 
} 
$res->close(); 
$mysql->close(); 
?> 
</table>
PHP 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
PHP学习笔记之二
Jan 17 #PHP
PHP学习笔记之一
Jan 17 #PHP
php下连接mssql2005的代码
Jan 17 #PHP
Php Image Resize图片大小调整的函数代码
Jan 17 #PHP
php生成随机密码的几种方法
Jan 17 #PHP
PHP校验ISBN码的函数代码
Jan 17 #PHP
PHP中用正则表达式清除字符串的空白
Jan 17 #PHP
You might like
php实现生成验证码实例分享
2016/04/10 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
python中正则表达式的使用方法
2018/02/25 Python
Python 读写文件的操作代码
2018/09/20 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python字典改变value值方法总结
2019/06/21 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python使用type动态创建类操作示例
2020/02/29 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
利用python爬取有道词典的方法
2020/12/08 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
机工车间主任岗位职责
2014/03/05 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
心灵点滴观后感
2015/06/02 职场文书
昆虫记读书笔记
2015/06/26 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers