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之第三天
Oct 09 PHP
PHP 采集程序 常用函数
Dec 18 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 PHP
php模板函数 正则实现代码
Oct 15 PHP
wamp安装后自定义配置的方法
Aug 23 PHP
Symfony2开发之控制器用法实例分析
Feb 05 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
php和nginx交互实例讲解
Sep 24 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实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
PHP的PDO连接讲解
2019/01/24 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
vue中轮训器的使用
2019/01/27 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
杠杆的科学教学反思
2014/01/10 职场文书
《口技》教学反思
2014/02/21 职场文书
集中整治工作方案
2014/05/01 职场文书
实习证明格式范文
2014/10/14 职场文书
仓管员岗位职责
2015/02/03 职场文书
教师党员自我评价2015
2015/03/04 职场文书
实习护士自荐信
2015/03/25 职场文书
php修改word的实例方法
2021/11/17 PHP
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏