|
Rob,
This would likely be more appropriate for web400, but I'm subscribed to both and this should be the droids your looking for.
As suggested you can use built in PHP functions to check the data type of variables. I suggest reviewing your options at this link here: http://php.net/manual/en/book.ctype.php
With some additional 'if' clauses you can decide if single quotes should be added or not.
On a side note, I suggest you use parameterized queries when building your query strings. In additional to greatly reducing the chance of SQL injection, you also do not need to add single quotes for any values you want to insert (IE: around the question marks).
You can find more on the subject with examples here:
http://php.net/manual/en/function.db2-prepare.php
http://php.net/manual/en/function.db2-execute.php
But just to take some of the code you provided and show you what it might look like like (for parameterized queries, not type checking):
Note*: This code isn't tested, I just modified it off the cuff. Also, I'd personally be more consistent with my double and single quotes, but whatever works for you.
function MakeSets( $aSet ) // Convert Associative Array Into UPDATE SET Field = Value Pairs {
$sSets = $sSep = '' ;
foreach ( $aSet as $sK => $sV )
{
$sSets .= $sSep . '"' . $sK . '"' . " = ? " ;
$params[] = $sV;
$sSep = ', ' ;
}
$returnValue['query'] = $sSets;
$returnValue['params'] = $params;
return $returnValue;
}
$sets = MakeSets($data);
$stmt = db2_prepare($conn, $sets['query']);
$result = db2_execute($stmt, $sets['params']);
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.