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版自动生成文章摘要
Jul 23 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
定义php常量的详解
Jun 09 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
goto语法在PHP中的使用教程
Sep 17 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
隐性调用php程序的方法
2015/06/13 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
浅析PHP开发规范
2018/02/05 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
再探JavaScript作用域
2014/09/24 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
node.js实现登录注册页面
2017/04/08 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
Less 安装及基本用法
2018/05/05 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
Python实现Const详解
2015/01/27 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python如何生成各种随机分布图
2018/08/27 Python
python操作文件的参数整理
2019/06/11 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
八年级数学教学反思
2014/01/31 职场文书
推荐信格式范文
2014/05/09 职场文书
员工工作能力评语
2014/12/31 职场文书
离婚案件答辩状
2015/05/22 职场文书
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android