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 和 MySQL 基础教程(二)
Oct 09 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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
MySQL授权问题总结
2007/05/06 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python程序封装为win32服务的方法
2021/03/07 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
python检测服务器端口代码实例
2019/08/31 Python
python批量处理txt文件的实例代码
2020/01/13 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
css3学习心得分享
2013/08/19 HTML / CSS
三个Unix的命令面试题
2015/04/12 面试题
美德好少年事迹材料
2014/01/19 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
专项资金申请报告
2015/05/15 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle