note 100479 added to mysqli.query
| From: | CharlieChan at osu1 dot php dot net | Date: | Tue, 19 Oct 2010 03:03:42 +0000 |
| Subject: | note 100479 added to mysqli.query | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-173261@lists.php.net to get a copy of this message | ||
You can create similar generic statements for updates and deletes.
function genericUpdate($tablename, $opts, $where) {
$opts = cleanseArray($opts);
$keys = array_keys($opts);
$vals = array_values($opts);
$setString;
$whereString;
for ($i = 0; $i < count($keys); $i++) {
if (in_array($keys[$i], $where)) {
if (!isset($whereString))
$whereString = $keys[$i]." = '".$vals[$i]."'";
else
$whereString = $whereString." AND ".$keys[$i]." =
'".$vals[$i]."'";
} else {
if (!isset($setString))
$setString = $keys[$i]." = '".$vals[$i]."'";
else
$setString = $setString.", ".$keys[$i]." =
'".$vals[$i]."'";
}
}
$sql = "UPDATE $tablename SET ".$setString." WHERE ".$whereString;
logDebug("SQL TO Update KEYS: ".$sql);
return dbQuery($sql);
}
function genericDelete($tablename, $opts) {
$opts = cleanseArray($opts);
$keys = array_keys($opts);
$vals = array_values($opts);
$whereString;
for ($i = 0; $i < count($keys); $i++) {
if ($i == (count($keys) - 1))
$whereString = $whereString.$keys[$i]." = '".$vals[$i]."'";
else
$whereString = $whereString.$keys[$i]." = '".$vals[$i]."' AND ";
}
$sql = "DELETE FROM ". $tablename . " WHERE " . $whereString;
logDebug("SQL TO DELETE KEYS: ".$sql);
return dbQuery($sql);
}
Just be sure that you cleanse your arrays before input into DB.
function cleansePureString($str, $char = '\\')
{
///[^a-zA-Z0-9\s]/ NON ALPHA
$cleansed = preg_replace("/[%_'\"]/", '', $str); //_, % and '
//logDebug("CLEANSED VAL: ".$cleansed);
return $cleansed;
}
function cleanseArray($opts) {
$cleansedArray = array();
$keys = array_keys($opts);
$vals = array_values($opts);
for ($i = 0; $i < count($keys); $i++) {
$newKey = cleansePureString($keys[$i],"'");
$newVal = cleansePureString($vals[$i],"'");
$cleansedArray[$newKey] = $newVal;
}
return $cleansedArray;
}
----
Server IP: 69.147.83.197
Probable Submitter: 122.111.51.208
----
Manual Page -- http://www.php.net/manual/en/mysqli.query.php
Edit -- https://master.php.net/note/edit/100479
Del: integrated -- https://master.php.net/note/delete/100479/integrated
Del: useless -- https://master.php.net/note/delete/100479/useless
Del: bad code -- https://master.php.net/note/delete/100479/bad+code
Del: spam -- https://master.php.net/note/delete/100479/spam
Del: non-english -- https://master.php.net/note/delete/100479/non-english
Del: in docs -- https://master.php.net/note/delete/100479/in+docs
Del: other reasons-- https://master.php.net/note/delete/100479
Reject -- https://master.php.net/note/reject/100479
Search -- https://master.php.net/manage/user-notes.php