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如何得到当前页和上一页的地址?
Nov 27 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
基于empty函数的输出详解
Jun 17 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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
模拟flock实现文件锁定
2007/02/14 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
python如何在终端里面显示一张图片
2016/08/17 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python爬虫实例详解
2018/06/19 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
秋季运动会稿件
2014/01/30 职场文书
经理岗位职责范本
2015/04/15 职场文书
公司文体活动总结
2015/05/07 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA