我的PDO 类

Aug 08, 2016 am 09:28 AM
function gt public quot sql

<?php /*
public function db_insert($sql) 			#插入数据
public function db_delete($sql) 			#删除数据
public function db_update($sql) 			#更新数据
public function db_getOne($sql) 			#获取一条数据
public function db_getAll($sql) 			#获取多条数据
public function db_tran_start() 			#开启事务
public function db_tran_commit() 			#事务提交
public function db_tran_rollback() 			#事务回滚
public function db_prepare($sql ,$params ) 	        #预编译机制
*/

header("content-type:text/html;charset=utf-8");

class MePDO{
	// 定义属性
	private $dsn;
	private $user;
	private $password;
	private $pdo;

	//定义构造函数

	public function __construct($arr=array()){

		$this->dsn = isset($arr['dsn'])?$arr['dsn']:'mysql:host=localhost;dbname=project;';
		$this->user = isset($arr['user'])?$arr['user']:'root';
		$this->password = isset($arr['password'])?$arr['password']:'759114';
		$this->pdo= new PDO($this->dsn,$this->user,$this->password);           #实例化pdo对象
	}

	//利用PDO实现数据库操作
	/*
	@param  string  $sql  对sql语句进行判定
	*/
	private function _Exec($sql){
		try{									#进行错误处理

			$res = $this->pdo->exec($sql);
			if(!$res){							#语句错误,抛出异常
				throw new PDOException('出错啦!');
			}else{
				return $res;
			}
		}
		catch(PDOException $e){
			echo $e->getMessage();				     #输出异常信息
			echo "<br>";
			echo "错误所在行:".$e->getLine()."<br>";
			echo "错误编号:".$this->pdo->errorInfo()[1]."<br>";
			echo "错误信息:".$this->pdo->errorInfo()[2]."<br>";
			exit();
		}
	}

	// 进行插入操作
	/*
	* @param  string $sql
	*@return int 受影响行数
	*/
	public function db_insert($sql){
		$res = $this->_Exec($sql);				#执行操作
		return $this->pdo->lastInsertId();
	}

	// 进行插入操作
	/*
	* @param  string $sql
	*@return int 受影响行数
	*/
	public function db_delete($sql){
		$affected = $this->_Exec($sql);				#执行操作
		return $affected;
	}	


	//进行更新操作
	/*
		@param  string $sql  要插入的sql语句
		@retutn int 受影响的行数
	*/
	public function db_update($sql){
		$affected = $this->_Exec($sql);			#执行操作
		return $affected;						#返回受影响的行数
	}

	// 判断查询语句的语法是否正确
	private function Iserror($sql){
		try{
			//执行语句
			$res = $this->pdo->query($sql);
			if(!$res){							#语句错误,抛出异常
				throw new PDOException('出错啦!');
			}
			return $res;

			//语句正确
		}catch(PDOException $e){
			echo $e->getMessage();           	#输出错误信息
			echo "<br>";
			echo "错误所在行:".$e->getLine()."<br>";
			echo "错误编号:".$this->pdo->errorInfo()[1]."<br>";
			echo "错误信息:".$this->pdo->errorInfo()[2]."<br>";
			exit();
		}
	}

	//进行获取操作
	/*
		@param  string   $sql
		@return  array  返回一个数组
	*/
	public function db_getOne($sql){

		$stmt = $this->Iserror($sql);				 #执行sql 语句进行查询, 与exec 方法不同
		$row = $stmt->fetch(PDO::FETCH_ASSOC);   	 #返回一个关联数组
		return $row;
	}

	#获取多行数据
	/*
		@param  string  		$sql 		要执行的语句
		@return  array  		返回一个数组
	*/
	public function db_getAll($sql){
		$stmt = $this->Iserror($sql);
		$rows =$stmt->fetchAll($stmt,PDO::FETCH_ASSOC);
		return $rows;
	}

	//pdo 事务处理
	/*	Tran_start   开启事务
		@param    string     $sp  保存点,默认是sp1
		@return boolean
	*/
	public function db_tran_start($sp='sp1'){
		
		#执行语句,开启事务
		$res = $this->pdo->beginTransaction();	
		return true;
	}

	/*
		事务提交
		@return boolean  
	*/
	public function db_tran_commit(){
	
			$this->pdo->commit();		
	}

	//事务回滚
	public function db_tran_rollback(){
			$this->rollBack();		
	}

	//预编译处理
	/*
		@param  string   $sql       #sql 语句中使用 ? 作为占位符
		@param  array    $params
		@param  array    $arr   
	*/
	public function db_prepare($sql ,$params ){
		#prepare的 预编译语句不需要 Iserror判断
		$stmt = $this->pdo->prepare($sql);

		#执行语句
		$stmt->execute($params);
		$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
		return $res;
	}
}
Salin selepas log masuk

以上就介绍了我的PDO 类,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apr 17, 2024 pm 02:57 PM

HQL dan SQL dibandingkan dalam rangka kerja Hibernate: HQL (1. Sintaks berorientasikan objek, 2. Pertanyaan bebas pangkalan data, 3. Keselamatan jenis), manakala SQL mengendalikan pangkalan data secara langsung (1. Piawaian bebas pangkalan data, 2. Boleh laku kompleks pertanyaan dan manipulasi data).

Penggunaan operasi bahagian dalam Oracle SQL Penggunaan operasi bahagian dalam Oracle SQL Mar 10, 2024 pm 03:06 PM

"Penggunaan Operasi Bahagian dalam OracleSQL" Dalam OracleSQL, operasi bahagi ialah salah satu operasi matematik yang biasa. Semasa pertanyaan dan pemprosesan data, operasi pembahagian boleh membantu kami mengira nisbah antara medan atau memperoleh hubungan logik antara nilai tertentu. Artikel ini akan memperkenalkan penggunaan operasi pembahagian dalam OracleSQL dan memberikan contoh kod khusus. 1. Dua cara operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi boleh dilakukan dalam dua cara berbeza.

Perbandingan dan perbezaan sintaks SQL antara Oracle dan DB2 Perbandingan dan perbezaan sintaks SQL antara Oracle dan DB2 Mar 11, 2024 pm 12:09 PM

Oracle dan DB2 ialah dua sistem pengurusan pangkalan data hubungan yang biasa digunakan, setiap satunya mempunyai sintaks dan ciri SQL tersendiri. Artikel ini akan membandingkan dan membezakan antara sintaks SQL Oracle dan DB2, dan memberikan contoh kod khusus. Sambungan pangkalan data Dalam Oracle, gunakan pernyataan berikut untuk menyambung ke pangkalan data: CONNECTusername/password@database Dalam DB2, pernyataan untuk menyambung ke pangkalan data adalah seperti berikut: CONNECTTOdataba

Apakah yang dimaksudkan dengan atribut identiti dalam SQL? Apakah yang dimaksudkan dengan atribut identiti dalam SQL? Feb 19, 2024 am 11:24 AM

Apakah Identity dalam SQL? Contoh kod khusus diperlukan Dalam SQL, Identity ialah jenis data khas yang digunakan untuk menjana nombor penambahan automatik. Ia sering digunakan untuk mengenal pasti setiap baris data dalam jadual. Lajur Identiti sering digunakan bersama dengan lajur kunci utama untuk memastikan setiap rekod mempunyai pengecam unik. Artikel ini akan memperincikan cara menggunakan Identiti dan beberapa contoh kod praktikal. Cara asas untuk menggunakan Identity ialah menggunakan Identit semasa membuat jadual.

Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Feb 26, 2024 pm 07:48 PM

Tafsiran teg SQL dinamik MyBatis: Penjelasan terperinci tentang penggunaan teg Set MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik Ia menyediakan banyak teg SQL dinamik dan boleh membina pernyataan operasi pangkalan data secara fleksibel. Antaranya, tag Set ialah tag yang digunakan untuk menjana klausa SET dalam kenyataan UPDATE, yang sangat biasa digunakan dalam operasi kemas kini. Artikel ini akan menerangkan secara terperinci penggunaan teg Set dalam MyBatis dan menunjukkan kefungsiannya melalui contoh kod tertentu. Apakah itu Set tag Set tag digunakan dalam MyBati

Apakah maksud fungsi? Apakah maksud fungsi? Aug 04, 2023 am 10:33 AM

Fungsi bermaksud fungsi. Ia adalah blok kod yang boleh digunakan semula dengan fungsi tertentu Ia boleh menerima parameter input, melakukan operasi tertentu, dan mengembalikan hasil daripada blok yang boleh digunakan semula. kod untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

See all articles