note 103557 added to class.mysqli
| From: | codrakon at osu1 dot php dot net | 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