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下载远程文件类(支持断点续传)
Nov 14 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
php旋转图片90度的方法
Nov 07 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
php实现文件预览功能
May 23 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
PHP实现倒计时功能
Nov 16 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
php写的简易聊天室代码
2011/06/04 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Python 面向对象部分知识点小结
2020/03/09 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
python pip如何手动安装二进制包
2020/09/30 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
英国女士家居服网站:hush
2017/08/09 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
房地产销售计划书
2014/01/10 职场文书
公司投资建议书
2014/05/16 职场文书
工作收入住址证明
2014/10/28 职场文书
会计入职心得体会
2016/01/22 职场文书
团组织关系介绍信
2019/06/24 职场文书
一文简单了解MySQL前缀索引
2022/04/03 MySQL