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
路徑操作函式Windows(VC)
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