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模板技术[转]
Jan 04 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
php以post形式发送xml的方法
Nov 04 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
php析构函数的简单使用说明
Aug 24 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP二维数组分页2种实现方法解析
Jul 09 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 list()函数的详解
2013/06/05 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python模拟百度登录实例详解
2016/01/20 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
python版本的读写锁操作方法
2016/04/25 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
Python工厂函数用法实例分析
2018/05/14 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Python-for循环的内部机制
2020/06/12 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
大学生标准推荐信范文
2013/11/25 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
贷款委托书怎么写
2014/08/02 职场文书
先进典型事迹材料
2014/12/29 职场文书
追悼会家属答谢词
2015/09/29 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript