1. 程式人生 > >phpmysql操作函式類(pdo)

phpmysql操作函式類(pdo)

注意,經常出現插入資料庫資料時,中文字元亂碼,這時需要設定一下 pdo 的傳輸編碼。

$pdo->exec("SET CHARACTER SET UTF8");

後來使用了高版本的php和mysql,發現之前那個類過時了,,於是就重寫了使用pdo的操作類。

寫了兩個,一個比較簡單。。一個比較複雜。。。。。。doc寫的挺詳細的,,,我就不解釋了。。。

具體使用方法

好了,,,先上簡單的。。

<?php
/**
 * Created by PhpStorm.
 * User: leif
 * Date: 2016/5/11 0011
 * Time: 10:13
 */
include_once
'config.php'; /** * 連線資料庫 * @param string $dbhost * @param string $dbname * @param string $username * @param string $password * @return PDO */ function connectMysql($dbhost,$dbname,$username,$password){ $dsn = "mysql:host={$dbhost};dbname={$dbname}"; $pdo = new PDO($dsn,$username,$password
); return $pdo; } /** * 查詢一條資料 * @param PDO $pdo * @param $sql * @return mixed|PDOStatement */ function fetchOneMysql(PDO $pdo,$sql){ $row = $pdo->query($sql); $row = $row->fetch(); return $row; } /** * 查詢多條資料 * @param $pdo * @param $sql * @return mixed */ function fetchAllMysql
($pdo,$sql){
$row = $pdo->query($sql); $row = $row->fetchAll(); return $row; } /** 刪除一條資料 * @param PDO $pdo * @param $table * @param null $where * @return int */ function deleteMysql(PDO $pdo,$table,$where=null){ $sql = "delete from {$table} where {$where}"; $res = $pdo->exec($sql); return $res; } /** * 插入一條資料 * @param PDO $pdo * @param string $table * @param array $array * @return number */ function insertIntoOneMysql(PDO $pdo,$table,$array){ $keys = join(",", array_keys($array)); $values = join(",", array_values($array)); $sql = "insert into `{$table}` ({$keys}) values ({$values})"; $res = $pdo->exec($sql); return $res; } /** * 修改一條資料 * @param PDO $pdo * @param string $table * @param array $array * @param string $where * @return string */ function updateMysql($pdo,$table, $array,$where){ foreach ($array as $key=>$value){ if (@$set == null){ $p = ""; }else { $p = ","; } @$set .= "{$p}`{$key}`='{$value}'"; } $sql = "update `{$table}` set {$set} ".($where==null?null:"where ({$where})"); $res = $pdo->exec($sql); return $res; }

然後是複雜的,但是魯棒性更好

<?php

/**
 * 
 * @author [email protected]
 *
 */
class mysqlcon{
    private $_dbhost;
    private $_dbname;
    private $_username;
    private $_password;
    private $_pdo;

    /**
     * 建立物件是初始化資料庫連線資訊
     * @param string $dbhost databases-host
     * @param string $dbname databases-name
     * @param string $username databases-username
     * @param string $password databases-password
     */
    function __construct($dbhost,$dbname,$username,$password){
        $this->_dbhost = $dbhost;
        $this->_dbname = $dbname;
        $this->_username = $username;
        $this->_password = $password;
    }

    /**
     * 連線資料庫
     * @return string  連線失敗會返回異常資訊,成功返回成功資訊
     */
    function connectMysql(){
        try {
            $dsn = "mysql:host={$this->_dbhost};dbname={$this->_dbname}";
            $pdo = new PDO($dsn,$this->_username,$this->_password);
        } catch (PDOException $e) {
            return "mysql 連線失敗".$e->getMessage();
        }
        $this->_pdo = $pdo;
        return "Query OK";
    }

    /**
     * 查詢一行資料
     * @param string $sql 查詢語句
     * @throws Exception  查詢失敗,丟擲異常
     * @return array 查詢成功返回陣列,失敗返回異常資訊
     */
    function fetchOneMysql($sql){
        try {
            $row = $this->_pdo->query($sql);
            if ($row){
                $row = $row->fetch();
            }else {
                throw new Exception("sql語句或pdo物件出錯,查詢結果為空");
            }           
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return $row;
    }

    /**
     * 查詢多行資料
     * @param string $sql 查詢語句
     * @throws Exception  查詢失敗,丟擲異常
     * @return array 查詢成功返回陣列,失敗返回異常資訊
     */
    function fetchAllMysql($sql){
        try {
            $row = $this->_pdo->query($sql);
            if ($row){
                $row = $row->fetchAll();
            }else {
                throw new Exception("sql語句或pdo物件出錯,查詢結果為空");
            }
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return $row;
    }

    /**
     * 刪除資料
     * @param string $table 要操作的表
     * @param string $where 刪除條件 
     * @throws Exception 刪除失敗,丟擲異常
     * @return string 刪除成功,返回query ok資訊,刪除失敗,返回異常資訊
     */
    function deleteMysql($table,$where=null){
        $sql = "delete from {$table} where {$where}";
        try {
            $res = $this->_pdo->exec($sql);
            if ($res){

            }else {
                throw new Exception("刪除失敗,請檢查傳入引數");
            }
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return "Query OK, {$res} row affected";
    }

    /**
     * 插入一條資料
     * @param string $table 要操作的表
     * @param array $array 要插入的資料,以key=>value方式對應儲存在陣列
     * @throws Exception 插入失敗,丟擲異常
     * @return string 插入成功,返回query ok資訊,插入失敗,返回異常資訊
     */
    function insertIntoOneMysql($table,$array){
        $keys = join(",", array_keys($array));
        $values = join(",", array_values($array));
        $sql = "insert into `{$table}` ({$keys}) values ({$values})";
        try {
            $res = $this->_pdo->exec($sql);
            if ($res){

            }else {
                throw new Exception("插入失敗,請檢查引數是否正確");
            }
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return "Query OK, {$res} row affected";
    }

    /**
     * 修改資料
     * @param string $table 要操作的表
     * @param array $array 要修改的資料,以key=>value的方式對應儲存在陣列中
     * @param string $where 修改條件
     * @throws Exception 修改失敗,丟擲異常
     * @return string 修改成功,返回query ok資訊,修改失敗,返回異常資訊
     */
    function updateMysql($table, $array,$where){
        foreach ($array as $key=>$value){
            if (@$set == null){
                $p = "";
            }else {
                $p = ",";
            }
            @$set .= "{$p}`{$key}`='{$value}'";
        }
        $sql = "update `{$table}` set {$set} ".($where==null?null:"where ({$where})");
        try {
            $res = $this->_pdo->exec($sql);
            if ($res){

            }else {
                throw new Exception("修改失敗,請檢查引數");
            }
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return "Query OK, {$res} row affected";
    }
}


?>

相關推薦

phpmysql操作函式pdo

注意,經常出現插入資料庫資料時,中文字元亂碼,這時需要設定一下 pdo 的傳輸編碼。 $pdo->exec("SET CHARACTER SET UTF8"); 後來使用了高版本的php和mysql,發現之前那個類過時了,,於是就重寫了使用

PHP操作資料庫詳細PDO

    PHP 5.1 釋出時將附帶一個全新的資料庫連線層,即 PHP Data Objects (PDO)。雖然 PHP 一直都擁有很好的資料庫連線,但 PDO 讓 PHP的資料庫操作 達到一個新的高度。PDO可支援基本的MySQL、Microsoft SQL Server、Oracle

路徑操作函式WindowsVC

https://blog.csdn.net/hgy413/article/details/7816137   路徑截斷與合併函式      

原子操作原子操作詳細介紹

expected 文章 span del 也有 pair 上一個 ride 操作類 引言 ??Java從JDK1.5開始提供了java.util.concurrent.atomic包,方便程序員在多線程環境下,無鎖的進行原子操作。原子變量的底層使用了處理器提供的原子指令,但

PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密md5

一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的

淺談C++7--解構函式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

java常用工具—— 檔案讀取的操作

定義常用的檔案型別 public class FileType { /** * 檔案頭型別 */ public static final String XML_FILE = "text/xml;charset=UTF-8"; public static

java常用工具—— Excel 操作工具

import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io

java常用工具—— 文件讀取的操作

() utf-8 cati 解壓縮 操作 char ringbuf 路徑 except 定義常用的文件類型 public class FileType { /** * 文件頭類型 */ public static final Stri

python與物件的內建函式大全BIF

關於類與物件的一些常用BIF(內建函式) 1、issubclass(class,classinfo) 含義:如果class是classinfo的子類,則返回True,否則返回false,用來判斷子類關係 2、isinstance(objiect,classinfo) 含義:檢查一個例項物件是否屬於一個

常用工具:FileUtile 檔案相關操作

常用工具類(一):FileUtile 檔案相關操作 public class FileUtil { private static final Logger logger = LoggerFactory.getLogger(FileUtils.class); //讀取檔案

資料結構-迴圈佇列的基本操作函式實現含全部程式碼

    主要包含以下函式:    InitQueue(SqQueue &Q)              引數:迴圈佇列Q 功能:初始化迴圈佇列Q 時間複雜度:O(1)     QueueEmpty(SqQueue Q)              引數:迴圈佇列Q

關於複製建構函式及關於的簡單函式使用C++

剛學C++,關於複製建構函式的思考: 關於複製建構函式 : 相當於在記憶體新建一個類,再把資料複製給目標。可以是不完全複製(也是其存在意義),比如資料加減等。 三種使用情景: 1.用已知物件初始化信物件; 2.形參為物件; 3.返回值為物件; 簡單函式: 1.宣

pythone函式基礎8操作資料庫連線

#操作資料庫連線import pymysqlconn = pymysql.connect(host='118.24.3.40',user='jxz', password='123456',port=3306, db='jxz',charset='ut

Python的class和例項(Instance)如何操作使用,

面向物件最重要的概念就是類(Class)和例項(Instance),必須牢記類是抽象的模板,比如Student類,而例項是根據類創建出來的一個個具體的“物件”,每個物件都擁有相同的方法,但各自的資料可能不同。 仍以Student類為例,在Python中,定義類

Util應用程式框架公共操作:資料型別轉換公共操作介紹篇

  本系列文章將介紹一些對初學者有幫助的輔助類,這些輔助類本身並沒有什麼稀奇之處,如何能發現需要封裝它們可能更加重要,所謂授之以魚不如授之以漁,掌握封裝公共操作類的技巧才是關鍵,我會詳細說明建立這些類的動機和思考過程,以幫助初學者發現和封裝自己需要的東西。建立公共操作類的技巧,大家可以參考我的這篇文章——應用

Java操作JSON的便捷工具Gson

對於JSON資料格式的處理,自開發Java以來,已用過多種JSON的開源工具,用得最好,也用得最High的恐怕要屬Google的Gson了。 特別為它寫了一個工具類,放入常備工具中,方便使用。下面是為GSON 1.5版本重寫的工具類。 依賴包: slf4j-api-1.6.

java操作ORACLE資料庫工具JDBC

package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSe

C# 檔案操作詳解FileInfo

本篇讓我們一起看一下FileInfo類如何使用。     FileInfo類  提供了與File類相同的功能,不同的是FileInfo提供的都是成員方法   1、讀檔案 1 2 3 4 //摘要:建立只讀 System.IO.FileStrea

JAVA開發經驗:常用工具2.1-IO-檔案操作FileUtil

摘要說明: FileUtil主要是整合Apache Commons IO庫中的FileUtils類;主要包括對檔案的屬性查詢,複製,移動,檔案讀取,刪除等 Apache Commons IO庫包含實用程式類,流實現,檔案過濾器,檔案比較器,位元組序轉換類等等 Maven