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 相关文章推荐
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP反射API示例分享
Oct 08 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
cakephp常见知识点汇总
Feb 24 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
php获取微信openid方法总结
Oct 10 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传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
Python可以用来做什么
2020/11/23 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
全球性的女装店:storets
2019/06/12 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
老同学聚会感言
2014/02/23 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
经典演讲稿开场白
2014/08/25 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
工作证明书
2015/06/15 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
2016年元旦寄语
2015/08/17 职场文书