博主信息
博文 24
粉丝 0
评论 1
访问量 18265
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0426课后作业
张成钢的博客
原创
782人浏览过

实例

<?php 
	error_reporting(E_ALL || ~E_NOTICE);

	//连接函数
	if (!function_exists('myconnect')) {

		function myconnect($dbType,$host,$dbname,$user,$pw,$port=0,$charset='utf8') {
		if ($dbType == 'mysql') {
			//端口号设置						 
			$port = ($port == 0) ? 3306 : $port;
			//dsn 建立
 			$dsn = "{$dbType}:host={$host};dbname={$dbname};charset={$charset};port={$port}";
 			// echo $dsn;
		}

		if ($dbType == 'sqlsrv') {
			$port = ($port == 0) ? 1433 : $port;
			$dsn = "{$dbType}:server=tcp:{$host},{$port};database={$dbname};";
			// echo $dsn;
		}

		try{
			$pdo = new PDO($dsn,$user,$pw);
			// echo "<h3>数据库连接成功!</h3>";
		}catch (PDOException $e){
			die('连接失败。'.$e->getMessage());
		}		
		return $pdo;
		}
	}


	//新增函数
	if (!function_exists('myinsert')) {
		function myinsert($pdo,$table,$data=[]) {
			$sql = "INSERT INTO {$table} (";
			// Field 部分
			foreach (array_keys($data) as $field) {
				$sql .= $field.',';
			}
			//去掉尾部 , 并加上)
			$sql = rtrim(trim($sql),',').') ';

			//VALUE 部分
			$sql .= ' VALUES (';

			foreach (array_keys($data) as $value) {
				$sql .= ':'.$value.',';
			}
			$sql = rtrim(trim($sql),',').') ';

			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql);

			foreach ($data as $field => $value) {
				$stmt->bindValue(":{$field}",$value);
			}

			if ($stmt->execute()) {
				if ($stmt->rowCount() > 0) {
					echo '新增记录成功!';
					return true;
				} else {
					return false;
				}
			} else {
					// echo '<h3>新增记录失败</h3>';
					// print_r($stmt->errorInfo());						
					return false;

 			}

		}
	}

	//更新函数
	if (!function_exists('myupdate')) {
		function myupdate($pdo,$table,$data=[],$where) {

			$sql = "UPDATE {$table} SET ";

			// Field 部分
			foreach (array_keys($data) as $field) {
				$sql .= $field.'=' .':'.$field.',';
			}
			//去掉尾部 , 
			$sql = rtrim(trim($sql),',');

			//where 部分
	        if(!empty($where)) {
	            $sql .= ' WHERE '. $where;
	        }else{
	            exit('条件不能为空');
	        }

	        echo($sql);
			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql);
			foreach ($data as $field => $value) {
				$stmt->bindValue(":{$field}",$value);
			}

			if ($stmt->execute()) {
				if ($stmt->rowCount() > 0) {
					echo '修改记录成功!';
					return true;
				} else {
					return false;
				}
			} else {
					// echo '<h3>修改记录失败</h3>';
					// print_r($stmt->errorInfo());						
					return false;

 			}

		}
	}


	//删除函数
	if (!function_exists('mydelete')) {
		function mydelete($pdo,$table,$where) {

			$sql = "DELETE FROM {$table} ";

			//where 部分
	        if(!empty($where)) {
	            $sql .= ' WHERE '. $where;
	        }else{
	            exit('条件不能为空');
	        }

			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql);
			foreach ($data as $field => $value) {
				$stmt->bindValue(":{$field}",$value);
			}

			if ($stmt->execute()) {
				if ($stmt->rowCount() > 0) {
					echo '删除记录成功!';
					return true;
				} else {
					return false;
				}
			} else {
					// echo '<h3>修改记录失败</h3>';
					// print_r($stmt->errorInfo());						
					return false;

 			}

		}
	}

	//查询单条函数
	if (!function_exists('myselect_one')) {
		function myselect_one($pdo,$table,$fields,$where,$order) {

			$sql = "SELECT TOP 1 ";

			if (is_array($fields)) {
				foreach ($fields as $field) {
					$sql .= $field.', ';
				}
			} else {
				$sql .= $fields;
			}

			//去掉尾部 ,
			$sql = rtrim(trim($sql),',');

			//FROM 部分
			$sql .= ' FROM '.$table ;

			//where 部分
	        if(!empty($where)) {
	            $sql .= ' WHERE '. $where;
	        }

        	//ORDER BY  部分
        	if (!empty($order)) {
        		$sql .= ' ORDER BY ' .$order;
        	}

        	// echo $sql;
			//创建pdo预处理对象 
			// mssql rowCount()无法返回行数
			// mysql rowCount()可返回受影响的行数
			// rowCount() 用 prepare()方法时,仅支持CURSOR_SCROLL			
			$stmt = $pdo->prepare($sql,array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));

			if ($stmt->execute()) {
				// var_dump($stmt->rowCount());
				if ($stmt->rowCount() > 0) {
					echo '查询记录成功!';
					// $stmt->setFetchMode(PDO::FETCH_ASSOC);
					return $stmt->fetch(PDO::FETCH_ASSOC);
				}  else {
					echo '没有匹配的记录!';
					return false;
				}

			} else {
					// print_r($stmt->errorInfo());						
					return false;
 			}

		}
	}

	//查询符合条件的全部记录函数
	if (!function_exists('myselect_all')) {
		function myselect_all($pdo,$table,$fields,$where,$order) {

			$sql = "SELECT ";

			if (is_array($fields)) {
				foreach ($fields as $field) {
					$sql .= $field.', ';
				}
			} else {
				$sql .= $fields;
			}

			//去掉尾部 ,
			$sql = rtrim(trim($sql),',');

			//FROM 部分
			$sql .= ' FROM '.$table ;

			//where 部分
	        if(!empty($where)) {
	            $sql .= ' WHERE '. $where;
	        }

        	//ORDER BY  部分
        	if (!empty($order)) {
        		$sql .= ' ORDER BY ' .$order;
        	}

			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql,array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
			// var_dump($pdo->prepare($sql));

			if ($stmt->execute()) {
				if ($stmt->rowCount() > 0) {
					echo '查询记录成功!';
					// $stmt->setFetchMode(PDO::FETCH_ASSOC);
					return $stmt->fetchAll(PDO::FETCH_ASSOC);
				}  else {
					echo '没有匹配的记录!';
					return false;					
				}
			} else {
					// print_r($stmt->errorInfo());						
					return false;
 			}

		}
	}


	//调用存储过程函数
	if (!function_exists('myexecute')) {
		function myexecute($pdo,$proc,$params=[]) {

			$sql = "EXEC {$proc} ";

			// 参数 部分
			foreach (array_keys($params) as $param) {
				$sql .= ':'.$param.',';
			}
			//去掉尾部 , 
			$sql = rtrim(trim($sql),',');

	        // exit($sql);
			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql);
			foreach ($params as $param => $value) {
				$stmt->bindValue(":{$param}",$value);
			}

			if ($stmt->execute()) {
				echo '调用存储过程成功!';
				// $stmt->setFetchMode(PDO::FETCH_ASSOC);
				return $stmt->fetchAll(PDO::FETCH_ASSOC);

			} else {
					echo '<h3>调用存储过程失败!</h3>';
					// print_r($stmt->errorInfo());						
					return false;
 			}

		}
	}


 ?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php 

	
	require 'lib/myfun_pdo.php';

	// 连接测试 mssql
	$dbType = 'sqlsrv';
	$host = '127.0.0.1';
	$dbname = 'WsErp';
	$user = 'sa';
	$pw = '13650158099';

	$pdo = myconnect($dbType,$host,$dbname,$user,$pw);	

	// 连接测试 mysql
	// $dbType = 'mysql';
	// $host = '127.0.0.1';
	// $dbname = 'MyTest';
	// $user = 'root';
	// $pw = '13650158099';

	// $pdo = myconnect($dbType,$host,$dbname,$user,$pw);	
	

	//新增测试
	echo '<br>';
	$table = 'bs_supplier';
	$data = ['keyid'=>'test2', 'name'=>'test2_update'];
	myinsert($pdo,$table,$data);


	//修改测试
	echo '<br>';
	$table = 'bs_supplier';
	$data = ['jname'=>'pdo_u', 'name'=>'test2_update'];
	$where = "keyid='test2'";
	myupdate($pdo,$table,$data,$where);

	//删除测试
	echo '<br>';
	$table = 'bs_supplier';
	$where = "keyid='test2'";
	mydelete($pdo,$table,$where);

	//单条查询
	echo '<br>';
	$table = 'bs_supplier';
	$fields = ['keyid','name','jname'];
	// $where = "keyid like 'xx%'";
	$where = "keyid like '%'";
	$order = "keyid asc";
	echo '<pre>' .print_r(myselect_one($pdo,$table,$fields,$where,$order),true).'</pre>';

	
	//符合条件全部记录查询
	echo '<br>';
	$table = 'bs_supplier';
	$fields = ['keyid','name','jname'];
	$where = "keyid like 'F%'";
	$order = "keyid asc";
	echo '<pre>' .print_r(myselect_all($pdo,$table,$fields,$where,$order),true).'</pre>';

	//调用存储过程
	echo '<br>';
	$proc = 'mp_stat_supplier';
	$params = ['para1'=>'2017-01-01', 'para2'=>'2017-01-05','para3'=>'FC02'];
	echo '<pre>' .print_r(myexecute($pdo,$proc,$params),true).'</pre>';		
	

 ?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学