Heim >Backend-Entwicklung >PHP-Tutorial >PHP verwendet die PDO-Erweiterung, um eine Verbindung zur objektrelationalen PostgreSQL-Datenbank herzustellen

PHP verwendet die PDO-Erweiterung, um eine Verbindung zur objektrelationalen PostgreSQL-Datenbank herzustellen

WBOY
WBOYOriginal
2016-07-29 09:12:041649Durchsuche

PHP verwendet die PDO-Erweiterung, um eine Verbindung zur objektrelationalen PostgreSQL-Datenbank herzustellen

$pdo = NULL;
		if(<strong>version_compare</strong>(PHP_VERSION, '5.3.6', '<&#39;)){
			$pdo = new \PDO(&#39;pgsql:host=127.0.0.1;port=5432;dbname=postgredb1&#39;,&#39;postgres&#39;,"123456",array(\PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \'UTF8\'' ));
		}
		else{
			$pdo = new \PDO('pgsql:host=127.0.0.1;port=5432;dbname=postgredb1','postgres',"123456");
		}
		try {
			$pdo->beginTransaction();
			$tableName = 'user';
			
			if($fetch = true){
				$myPDOStatement = $pdo->prepare("SELECT * FROM " . $tableName . " WHERE id=:id ");
				if(!$myPDOStatement) {
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$id = 1;
				$myPDOStatement->bindParam(":id",$id);
				$myPDOStatement->execute();
				if($myPDOStatement->errorCode()>0){
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$item = $myPDOStatement->fetch();
				print_r($item);
			}
			
			$insertedId = 0;
			if($insert = true){
				$myPDOStatement = $pdo->prepare("INSERT INTO " . $tableName . "(username,password,status)	VALUES(:username,:password,:status)");
				if(!$myPDOStatement) {
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$timestamp = time();
				$data = array(
					'username' =>'usernamex',
					'password' =>'passwordx',
					'status' =>'1',
				);
				$myPDOStatement->bindParam(":username",$data['username']);
				$myPDOStatement->bindParam(":password",$data['password']);
				$myPDOStatement->bindParam(":status",$data['status']);
				$myPDOStatement->execute();
				if($myPDOStatement->errorCode()>0){
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$affectRowCount = $myPDOStatement->rowCount();
				if($affectRowCount>0){
					$insertedId = $pdo->lastInsertId();
				}
				print_r('$insertedId = '.$insertedId);//PostgreSQL不支持
				print_r('$affectRowCount = '.$affectRowCount);
			}
			
			if($update = true){
				$myPDOStatement = $pdo->prepare("UPDATE " . $tableName . " SET  username=:username, status=:status WHERE id=:id");
				if(!$myPDOStatement) {
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$id = 1;
				$username = 'username update';
				$status = 0;
				$myPDOStatement->bindParam(":id",$id);
				$myPDOStatement->bindParam(":username",$username);
				$myPDOStatement->bindParam(":status",$status);
				$myPDOStatement->execute();
				if($myPDOStatement->errorCode()>0){
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$affectRowCount = $myPDOStatement->rowCount();
				print_r('$affectRowCount = '.$affectRowCount);
			}
			
			if($fetchAll = true){
				$myPDOStatement = $pdo->prepare("SELECT * FROM " . $tableName ." WHERE id > :id");
				if(!$myPDOStatement) {
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$id = 0;
				$myPDOStatement->bindParam(":id",$id);
				$myPDOStatement->execute();
				if($myPDOStatement->errorCode()>0){
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$list = $myPDOStatement->fetchAll();
				print_r($list);
			}
			
			if($update = true){
				$myPDOStatement = $pdo->prepare("DELETE FROM " . $tableName . " WHERE id=:id");
				if(!$myPDOStatement) {
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				//$insertedId = 10;
				$myPDOStatement->bindParam(":id",$insertedId);
				$myPDOStatement->execute();
				if($myPDOStatement->errorCode()>0){
					$errorInfo = $myPDOStatement->errorInfo();
					throw new \<strong>Exception</strong>($errorInfo[0].'###'.$errorInfo[1].'###'.$errorInfo[2]);
				}
				$affectRowCount = $myPDOStatement->rowCount();
				print_r('$affectRowCount = '.$affectRowCount);
			}
			$pdo->commit();
		} catch (\<strong>Exception</strong> $e) {
			$pdo->rollBack();
// 			print_r($e);
		}
		$pdo = null;

Das Obige stellt vor, wie PDO die PDO-Erweiterung verwendet, um eine Verbindung zur objektrelationalen PostgreSQL-Datenbank herzustellen, einschließlich version_compare und Exception. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn