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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php动态生成函数示例
Mar 21 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
初识ThinkPHP控制器
Apr 07 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP使用函数用法详解
Sep 30 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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
3
2006/10/09 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
validator验证控件使用代码
2010/11/23 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
用python求一重积分和二重积分的例子
2019/12/06 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
python实现ping命令小程序
2020/12/28 Python
什么是类的返射机制
2016/02/06 面试题
英文商务邀请信
2014/01/22 职场文书
连带责任保证书
2014/04/29 职场文书
护士先进个人总结
2015/02/13 职场文书
2015年科协工作总结
2015/05/19 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
Python的三个重要函数详解
2022/01/18 Python