Re: update mysql without manually tying SET statements
- From: Thomas 'PointedEars' Lahn <PointedEars@xxxxxx>
- Date: Wed, 16 May 2012 18:06:57 +0200
Shake wrote:
El 16/05/2012 16:12, apavluck@xxxxxxxxx escribió:
I am trying to setup some generic code that will allow me to update a
mysql database via form and php. I can capture the data in the row of
the database that I want to update. I can present that in a form
populated with the existing values. What I can't figure out how to do is
to avoid typing out the SET statements in the update query.
[...]
The reason I want to do this is because I manage many projects all with
their own variables and databases and the update is the only part that I
have to type in manually.
Withouth entering in details, security and best practices...
$sqlString = ' UPDATE blablalba SET ';
The leading space does not make sense.
foreach($_POST as $key => $value)
{
$sqlString .= " `$key` = '$value', ";
}
// You have to deal here a little with the last comma ;)
That is one reason why you should _not_ build queries that way, but at least
join an array instead. See also <news:1762069.ZWGnKmheAe@xxxxxxxxxxxxxx>.
It's possible not all data in $_POST are fields of the database. You
could manage prefixing the indexes or other ways...
foreach($_POST as $key => $value)
{
if(!preg_match('/^my_prefix.+/',$key)) continue;
$sqlString .= " `$key` = '$value', ";
}
Or you filter out the items that you do not want, by key, using the
array_filter() function, which also returns the array to join that
I mentioned above.
<http://php.net/array_filter>
PointedEars
--
Sometimes, what you learn is wrong. If those wrong ideas are close to the
root of the knowledge tree you build on a particular subject, pruning the
bad branches can sometimes cause the whole tree to collapse.
-- Mike Duffy in cljs, <news:Xns9FB6521286DB8invalidcom@xxxxxxxxxxxx>
.
- References:
- update mysql without manually tying SET statements
- From: apavluck
- update mysql without manually tying SET statements
- Prev by Date: Re: Windows binaries 64bit for PHP
- Next by Date: Re: Windows binaries 64bit for PHP
- Previous by thread: update mysql without manually tying SET statements
- Next by thread: Re: update mysql without manually tying SET statements
- Index(es):
Relevant Pages
|