PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty)

dbconn.php

<?php
//------------------------使用PDO方式连接数据库文件-----------------------------------//
$dsn="mysql:host=localhost;dbname=xsphp";
$username="root";
$passwd=""; try{
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES UTF8");
$pdo= new PDO($dsn, $username, $passwd, $options);
}catch(Exception $e){
echo $e->getMessage();
}

demo.php

这是demo.php文件要包含的文件(数据库连接和其他一些初始化信息)

include "init.inc.php";
include "dbconn.php";

//pdo对象实现增加一条记录
$sql1="insert into xs_user(username,passwd,sex,addtime)values(?,?,?,?)"; //1、写sql语句
$stmt=$pdo->prepare($sql1); //预处理 $stmt->bindParam(1,$username); //2.绑定参数
$stmt->bindParam(2,$passwd);
$stmt->bindParam(3,$sex);
$stmt->bindParam(4, $addtime); $username ="红苹果"; //3.准备要插入的数据
$passwd = md5("123");
$sex ="女";
date_default_timezone_set('PRC'); //设置时区PRC东八区
$addtime= date('Y:m:d H:i:s',time()); //time()获取时间戳
$flag = $stmt->execute(); //返回值是sql语句是否正确,只要sql语句正确,那么返回值都是true。

//PDO对象实现删除一条记录
$sql3 = "delete from xs_user where `username`= ?";
$stmt = $pdo->prepare($sql3);
$flag3 = $stmt->execute(array("bright001")); //把where条件的参数放到一个数组array中
echo $sql3;
if($flag3){
$data = $stmt->fetch();
$smarty->assign("flag","ok");
}else{
$smarty->assign("flag","fail");
}

    //PDO对象实现更改一条记录

    $sql4= "update xs_user set `passwd`=md5('123') where `username`=? and `sex`=?";
echo $sql4;
$stmt = $pdo->prepare($sql4);
$username = "bright0010";
$sex = "女"; //一种是直接写在execute的参数array()带进去,一种是通过绑定参数法
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $sex);
$flag4 = $stmt->execute(); //execute()函数带一个数组,array('bright006','男')当查询的条件多个时,直接按序写在array数组里面即可
$res = $stmt->rowCount();
if($res>0){ $data = $stmt->fetch();
$smarty->assign("flag","ok"); }else{
$smarty->assign("flag","fail");
}

    //PDO对象实现查询记录
$sql5="select * from xs_user where `sex`=?";
$stmt=$pdo->prepare($sql5);
$sex="女";
$stmt->bindParam(1,$sex);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC); //关联数组的形式
$smarty->assign("data",$data);

最后显示到smarty模板即可

$smarty -> display("test.tpl");

PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码的更多相关文章

  1. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

  2. IDEA中通过工具类实现对数据库的增删改查

    package com.hu.dao; import com.hu.entity.Student; import java.util.List;import java.util.Map; public ...

  3. 48.Python中ORM模型实现mysql数据库基本的增删改查操作

    首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...

  4. [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?

    [译]聊聊C#中的泛型的使用(新手勿入)   写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...

  5. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  6. java程序设计课期中考试——数据库的增删改查和简单的js界面

    首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...

  7. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  8. IOS9中联系人对象的使用及增删改查操作的函数封装

    之前克服重重困难把IOS9中新的类联系人搞明白了,现在把增删改查封装成了函数,如下: // // ViewController.m // IOS9中联系人CNContact的使用 // // Crea ...

  9. C#通过窗体应用程序操作数据库(增删改查)

    为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...

随机推荐

  1. 2016021902 - linux解压缩命令

    转载自:http://blog.csdn.net/luo86106/article/details/6946255 .gz 解压1:gunzip FileName.gz 解压2:gzip -d Fil ...

  2. NSURLSession -- 实际开发中运用

    NSURLSession实际请求 iOS9使用http请求方法: 在工程info.plist文件内添加NSAppTransportSecurity键,类型为dictionary 在NSAppTrans ...

  3. Tomcat启动分析(Tomcat7.0)

    1)bin目录下的bootstrap.jar中的main方法启动Tomcat org.apache.catalina.startup.Bootstrap类下的main方法 可以看到Bootstrap类 ...

  4. 用Enterprise Architect从源码自动生成类图

    http://blog.csdn.net/zhouyong0/article/details/8281192 /*references:感谢资源分享者.info:简单记录如何通过工具从源码生成类图,便 ...

  5. php对象与数组互转

    //对象转数组 function objectToArray($obj){ $arr = is_object($obj) ? get_object_vars($obj) : $obj; if(is_a ...

  6. ld: symbol dyld_stub_binding_helper not found, normally in crt1.o/dylib1.o/bundle1.o for architecture i386

    就是选择的运行版本太低了,点击项目,project,把iOS DeployMent Target改为比较高的版本就行

  7. 改善 ASP.NET MVC 代码库的 5 点建议

    MVC,建议 刚刚检查完支持工单中的一些代码,笔者想针对 ASP.NET MVC 应用的改进写一些建议.这些内容仍在笔者脑海中,愿与各位一同分享.若你已使用 MVC 一段时间,那么以下内容可能并不新鲜 ...

  8. hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size

    hibernate的速度问题 这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,知道后来才知道问题的所在.       其实hibernate的速度性能并不差,比起jdbc来说,又是 ...

  9. JSch - Java实现的SFTP(文件下载详解篇)(转)

    上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch实现文件下载的功能.并介绍一些SFTP的辅助方法,如cd,ls等.   同样,JSch的文件下载也支持三种传输模式:OVERWRI ...

  10. c++ 名字粉碎(name mangling)

    转自Ibm: Name mangling is the encoding of function and variable names into unique names so that linker ...