Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #1843

Re: database access

From Jerry Stuckle <jstucklex@attglobal.net>
Newsgroups comp.lang.php
Subject Re: database access
Date 2011-05-25 17:37 -0400
Organization A noiseless patient Spider
Message-ID <irjspv$iap$1@dont-email.me> (permalink)
References <7ded58f7-d089-4a1e-ba94-38183b0ec851@z37g2000vbl.googlegroups.com>

Show all headers | View raw


On 5/25/2011 1:17 PM, Jivanmukta wrote:
> I new relatively new to PHP. I need your opinion if the following set
> of database functions make sense:
>
> function openDatabase() {
>      global $db;
> 	try {
> 		$db = new PDO('mysql:host=' . MYSQL_SERVER . ';dbname=' .
> MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD);
> 		$db->exec('SET NAMES latin2');
> 		$db->exec('SET CHARACTER SET latin2 COLLATE latin2_general_ci');
> 		$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
> 		register_shutdown_function('closeDatabase');
> 	} catch (PDOException $e) {
> 		return false;
> 	}
>      return true;
> }
>
> function closeDatabase() {
> 	global $db, $inTransaction;
> 	if ($inTransaction) {
> 		$db->rollBack();
> 		$inTransaction = false;
> 	}
>      	if (!is_null($db)) {
> 		$db = null;
> 	}
> }
>
> function queryDatabase($sql) {
> 	global $db, $inTransaction;
> 	$result = array();
> 	try {
> 		$qry = $db->query($sql);
> 		if (!empty($qry)) {
> 			$result = $qry->fetchAll();
> 		}
> 	} catch (PDOException $e) {
> 		if ($inTransaction) {
> 			$db->rollBack();
> 		}
> 		error(ERRMSG_DATABASE_OPERATION_FAILED);
> 	}
> 	return $result;
> }
>
> function execDatabase($sql) {
> 	global $db, $inTransaction;
> 	$result = array();
> 	try {
> 		$result = $db->exec($sql);
> 	} catch (PDOException $e) {
> 		if ($inTransaction) {
> 			$db->rollBack();
> 		}
> 		error(ERRMSG_DATABASE_OPERATION_FAILED);
> 	}
> 	return $result;
> }
>
> function startTransaction() {
>      	global $db, $inTransaction;
>      	$db->beginTransaction();
> 	$inTransaction = true;
> }
>
> function commitTransaction() {
>      	global $db, $inTransaction;
> 	$inTransaction = false;
>      	if ($db->commit()) {
>          	return;
>      	}
>      	$db->rollBack();
>      	error(ERRMSG_DATABASE_OPERATION_FAILED);
> }
>
> function rollbackTransaction() {
>      	global $db, $inTransaction;
> 	$inTransaction = false;
>      	if ($db->rollBack()) {
>          	return;
>      	}
>      	error(ERRMSG_DATABASE_OPERATION_FAILED);
> }
>
> function lockTables($tables) {
> 	return execDatabase('LOCK TABLES ' . join(' WRITE, ', $tables) . '
> WRITE');
> }
>
> function unlockTables() {
> 	return execDatabase('UNLOCK TABLES');
> }

Kind of, and maybe a bit overkill.  But personally I'd put it all in a 
Database class.  The code would be more flexible and less prone to errors.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

database access Jivanmukta <jivanmukta@poczta.onet.pl> - 2011-05-25 10:17 -0700
  Re: database access Jerry Stuckle <jstucklex@attglobal.net> - 2011-05-25 17:37 -0400
    Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 08:09 -0400
      Re: database access Jerry Stuckle <jstucklex@attglobal.net> - 2011-05-26 09:00 -0400
        Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 10:22 -0400
          Re: database access Jerry Stuckle <jstucklex@attglobal.net> - 2011-05-26 11:41 -0400
            Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 12:07 -0400
              Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 12:14 -0400
    Re: database access sophal chao <w3cyberlearning@gmail.com> - 2011-05-29 13:41 -0700
      Re: database access Jerry Stuckle <jstucklex@attglobal.net> - 2011-05-29 23:12 -0400
  Re: database access JohnT <john@example.com> - 2011-05-26 13:05 +0000
    Re: database access Jivanmukta <jivanmukta@poczta.onet.pl> - 2011-05-26 06:37 -0700
      Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 10:30 -0400
        Re: database access sheldonlg <sheldonlg@thevillages.net> - 2011-05-26 10:33 -0400
      Re: database access Jerry Stuckle <jstucklex@attglobal.net> - 2011-05-26 11:43 -0400
    Re: database access Michael Fesser <netizen@gmx.de> - 2011-05-26 19:48 +0200
      Re: database access Erwin Moller <Since_humans_read_this_I_am_spammed_too_much@spamyourself.com> - 2011-05-30 10:56 +0200

csiph-web