PHP基于PDO扩展操作mysql数据库示例


Posted in PHP onDecember 24, 2018

本文实例讲述了PHP基于PDO扩展操作mysql数据库。分享给大家供大家参考,具体如下:

SELECT

//查单条
function get_sub_product()
{
  $res_zz = $pdo->query("SELECT id FROM content WHERE is_publish = 0 LIMIT 1;");
  $rep = $res_zz->fetch();
}
//查多条
function get_sub_product()
{
  $dsn = 'mysql:host=localhost;dbname=bwdb';
  $pdo = new PDO($dsn, 'root', 'root');
  $pdo->query('set names utf8');
  $res_zz = $pdo->query("SELECT product_id FROM sub_product WHERE 1= 1;");
  $rep = $res_zz->fetchAll();
  $product_id_arr = array();
  foreach ($rep as $v) {
    $product_id_arr[] = $v['product_id'];
  }
  return $product_id_arr;
}

INSERT

function add()
{
  try {
    $pdo->beginTransaction();
    $reb = $pdo->prepare("INSERT INTO `content` (`id`,`content`) VALUES(:version_id,:content);");
    $reb->bindParam(':version_id', $version_id, PDO::PARAM_INT);
    $reb->bindParam(':content', $content, PDO::PARAM_STR);
    $type_id = 1;
    $reb->bindParam(':type_id', $type_id, PDO::PARAM_INT);
    $reb->bindParam(':cdate', $time, PDO::PARAM_STR);
    $reb->bindParam(':mdate', $time, PDO::PARAM_STR);
    if ($reb->execute() > 0) {
      $pdo->commit();
      die("成功!");
    }
    $pdo->rollback();
    die("失败!");
  } catch (PDOException $ex) {
    echo($ex->getMessage());
  }
}
function add($res_arr)
{
  $dsn = 'mysql:host=localhost;dbname=db';
  $pdo = new PDO($dsn, 'root', 'root');
  $pdo->query('set names utf8');
  $value = '';
  date_default_timezone_set("Asia/Shanghai"); //时区
  $time = date('Y-m-d h:i:s');
  foreach ($res_arr as $k => $v) {
    $hash = md5($v['ProductID'] . "-" . $v['CategoryID'] . "-" . $v['CategoryName']);
    $value .= "('" . $v['ProductID'] . "','" . $v['CategoryID'] . "','" . $v['CategoryName'] . "','" . $v['ProductName'] . "','" . $v['Abbreviation'] . "','" . $v['SubscribeStatus'] . "','" . $v['ProductStatus'] . "','" .
      $v['BrandID'] . "','" . $v['BrandName'] . "','" . $v['TradeType'] . "','" . $v['ProductModel'] . "','" . $v['UPCCode'] . "','" . $v['Weight'] . "','" . $v['Summary'] . "','" .
      $v['LongDescription'] . "','" . $v['BuyNotice'] . "','" . $v['PackingList'] . "','" . $v['DefaultImage'] . "','" . $v['Keywords'] . "','" . $v['VendorID'] . "','" . $v['StoreID'] . "','" .
      $v['CurrentPrice'] . "','" . $v['AvailableQty'] . "','" . $hash . "','" . $time . "','" . $time . "'),";
  }
  $vv = substr($value, 0, strlen($value) - 1);
  try {
    $pdo->beginTransaction();
    if (!empty($vv)) {
      $reb = $pdo->prepare("REPLACE INTO `product_list` (`product_id`, `category_id`, `category_name`, `product_name`, `abbreviation`, `subscribe_status`, `product_status`, `brand_id`, `brand_name`, `trade_type`, "
        . "`product_model`, `upc_code`, `weight`, `summary`, `long_description`, `buy_notice`, `packing_list`, `default_image`, `keywords`, `vendor_id`, `store_id`, `current_price`, "
        . "`available_qty`, `hash`, `cdate`, `mdate`) VALUES $vv;");
      if ($reb->execute() > 0) {
        $pdo->commit();
        return 1;
      }
    }
  } catch (PDOException $ex) {
    $pdo->rollback();
  }
  return -1;
}

UPDATE

function update()
{
  try {
    $pdo->beginTransaction();
    $is_publish = 1;
    $req = $pdo->prepare("UPDATE `content` SET is_pub=:is_pub,mdate=:mdate WHERE id = :id;");
    $req->bindParam(':is_publish', $is_publish, PDO::PARAM_INT);
    $req->bindParam(':id', $version_id, PDO::PARAM_INT);
    $req->bindParam(':mdate', $time, PDO::PARAM_STR);
    if ($req->execute()) {
      $pdo->commit();
      die("成功!");
    }
    $pdo->rollback();
    die("失败!");
  } catch (PDOException $ex) {
    echo($ex->getMessage());
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP5 安装方法
Oct 09 PHP
提升PHP执行速度全攻略(下)
Oct 09 PHP
php横向重复区域显示二法
Sep 25 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
详解Window7 下开发php扩展
Dec 31 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
php实现简易计算器
Aug 28 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 #PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 #PHP
php workerman定时任务的实现代码
Dec 23 #PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 #PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 #PHP
PHP支付宝当面付2.0代码
Dec 21 #PHP
php json转换相关知识(小结)
Dec 21 #PHP
You might like
SMARTY学习手记
2007/01/04 PHP
php+mysql事务rollback&commit示例
2010/02/08 PHP
定义select的边框颜色
2008/04/28 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
使用Python制作微信跳一跳辅助
2018/01/31 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
Python匿名函数及应用示例
2019/04/09 Python
python实现的config文件读写功能示例
2019/09/24 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
什么是serialVersionUID
2016/03/04 面试题
UNIX文件名称有什么规定
2013/03/25 面试题
大型公益活动策划方案
2014/08/20 职场文书
感谢信的格式
2015/01/21 职场文书
公务员年终个人总结
2015/02/12 职场文书
小学生读书笔记范文
2015/06/30 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
导游词之青城山景区
2019/09/27 职场文书
Python绘画好看的星空图
2022/03/17 Python