note 103557 added to class.mysqli

From: Date: Wed, 20 Apr 2011 12:38:40 +0000
Subject: note 103557 added to class.mysqli
Groups: php.notes 
Request: Send a blank email to php-notes+get-178989@lists.php.net to get a copy of this message
here is code for a generic Data Access Layer that can be used for insert, update, and select queries. It uses the MySQLi library to connect to the db and handle MySQL queries. Note depandancies on the mnconfig.php file. Usage: function promoemail($membershipnumber, $emailaddress, $name, $contactnumber) { /* your code here for example if ($membershipnumber != null) {.... .....} */ $dbfunctions = new mnDAL(); $result = $dbfunctions->getnewsletterusers(); if($this->commitdb($membershipnumber, $emailaddress, $name, $contactnumber, $vouchernumber, $discountnumber, $validdate)) { return $body; } else { return false; } foreach ($result as $row) { echo $row['membershipnumber'].'<br/>'; } } function commitdb ($membershipnumber, $emailaddress, $name, $contactnumber, $vouchernumber, $discountnumber, $validdate) { $dbfunctions = new mnDAL(); echo $membershipnumber . ' ' . $emailaddress . ' ' . $name . ' ' . $contactnumber . ' ' . $validdate; $dbfunctions->insertnewsletteruser($membershipnumber, $emailaddress, $name, $contactnumber, $vouchernumber, $discountnumber, $validdate); return true; } } Note that $dbfunctions = new mnDAL(); creates a new instance of the object, which has a public method $dbfunctions->insertnewsletteruser($membershipnumber, $emailaddress, $name, $contactnumber, $vouchernumber, $discountnumber, $validdate); END FRONTEND EXAMPLE BEGIN Generic Data Access Layer Code <?php /*Author: Chris Morton/codrakon; Dependancies: mnconfig.php (contains $dbhost, $dbusername, $dbpassword, $dbname) Version: 1.0 Last updated: 17-01-11 */ include_once('mnconfig.php'); class mnDAL { /* INSERT PUBLIC FUNCTIONS HERE */ private function dbconnect() { global $dbhost, $dbusername, $dbpassword, $dbname; $con = mysqli_connect($dbhost, $dbusername, $dbpassword, $dbname); if (mysqli_connect_errno()) { printf('<br/>Connection to Database failed: %s<br/>', mysqli_connect_error()); exit(); } return $con; } private function doinsertquery($params,$query) { if ($con = $this->dbconnect()) { if ($stmt = mysqli_prepare($con, $query)){ if ($params != null) { $types = $params[0]; $dynphp = 'mysqli_stmt_bind_param($stmt, $types, '; for ($x = 1; $x <= count($params)-1; $x++) { $dynphp .= '$params[' . $x . '],'; } $dynphp = substr($dynphp, 0, strlen($dynphp)-1); $dynphp .= ');'; eval($dynphp); } } mysqli_stmt_execute($stmt); $affectedrows = mysqli_stmt_affected_rows($stmt); mysqli_stmt_close($stmt); return $affectedrows; } } private function doselectquery($params, $query) { /*code ommitted due to space on php.net, contact me for code*/ } private function doupdatequery($params, $query) { /*contact codrakon for complete code*/ } private function getvars($fields) { $outputstr = ''; foreach ($fields as $field) { $outputstr .= '$col[\''. strtolower($field->name) .'\'],'; } $outputstr = substr($outputstr, 0, strlen($outputstr)-1); return $outputstr; } } ?> As one can see there is /* INSERT PUBLIC FUNCTIONS HERE */ In here you would insert such a function as this: function insertnewsletteruser ($membershipnumber, $emailaddress, $name, $contactnumber, $vouchernumber, $discountnumber, $validdate) { $params = array('sssssss',$name, $emailaddress, $contactnumber, $membershipnumber, $vouchernumber, $discountnumber, $validdate); $query = 'Insert into mnnewsletters (Name, Email, ContactNumber, MembershipNumber, VoucherNumber, DiscountNumber, ValidUntil) Values (?,?,?,?,?,?,?)'; return $this->doinsertquery($params,$query); } which is used by the front end code. END GENERIC DATA ACCESS LAYER CODE ---- Server IP: 69.147.83.197 Probable Submitter: 41.146.25.8 ---- Manual Page -- http://www.php.net/manual/en/class.mysqli.php Edit -- https://master.php.net/note/edit/103557 Del: integrated -- https://master.php.net/note/delete/103557/integrated Del: useless -- https://master.php.net/note/delete/103557/useless Del: bad code -- https://master.php.net/note/delete/103557/bad+code Del: spam -- https://master.php.net/note/delete/103557/spam Del: non-english -- https://master.php.net/note/delete/103557/non-english Del: in docs -- https://master.php.net/note/delete/103557/in+docs Del: other reasons-- https://master.php.net/note/delete/103557 Reject -- https://master.php.net/note/reject/103557 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#178989) next »