Re: [PHP-DB] Not updating certain fields in same row

[email protected] (Jason Pruim)
Newsgroups php.db
Message-ID <[email protected]>
On Mar 25, 2008, at 2:57 PM, Evert Lammerts wrote:
> I might be way off here. Php.net tells me that:
>
> [quote]
>
> mysql_real_escape_string — Escapes special characters in a string  
> for use in a SQL statement
>
> string **mysql_real_escape_string** ( string $unescaped_string [,  
> resource $link_identifier ] )
>
> [/quote]
>
> and you use
>
> [quote]
>
> mysqli_real_escape_string($chpwpostlink, $_POST['txtLoginName']);
>
> [/quote]
>
> I can't imagine that $_POST['txtLoginName'] is a resource identifier  
> (which is the actual connection to your database).

It's not... see: http://us2.php.net/manual/en/function.mysqli-real-escape-string.php 
  Notice the I after mysql
>
>
> Also, this condition:
>
> [quote]
>
> if (!isset($_POST['txtLoginName']) || empty($_POST['txtLoginName']))
>
> [/quote]
>
> is true if and only if no form element by the name txtLoginName  
> existed on the previous page - and on top of that, empty() does the  
> same as isset() and apart from that also checks whether, if the  
> variable has been set, it has a value (0, "", NULL or FALSE) that  
> evaluates to FALSE.
>
> I don't understand why you'd want to fill the username with a tab  
> either: "\t".
I didn't want to... What I am attempting to do is if the field is NOT  
changed, don't touch it in the database. The main issue I had was with  
the password field for updating a password since I"m not going to read  
a MD5 hash back to the user to be edited.

>
>
> Maybe you can post your full code?
>
> Evert
>
>
> Daniel Brown wrote:
>> On Tue, Mar 25, 2008 at 1:14 PM, Jason Pruim <[email protected]>  
>> wrote:
>>
>>> the actual query I'm using is this:
>>>
>>>        $chpwsql = "UPDATE current SET customerName='$customerName',
>>> loginName='$loginName', loginPassword='$PW', email='$email',
>>> adminLevel='$adminLevel' WHERE Record='$Record1'";
>>>
>>> What it is doing now is if I don't set a a field I am replacing the
>>> content of it with a tab, which isn't what I want. Basically what  
>>> I'm
>>> looking for is if loginPassword hasn't changed... don't clear the
>>> contents of it. if it has changed, then update loginPassword
>>>
>>
>>    Okay, since you won't only want to rely on isset() here (in case
>> someone accidentally hits a key into the field), try this:
>>
>> // NOTE: This assumes prior sanity checks and cleansing
>> // of variables, and is written like so to avoid breaking
>> // of the query due to mail client-enforced line breaks.
>> $chpwsql  = "UPDATE current SET ";
>> $chpwsql .= "customerName='".$customername."',";
>> $chpwsql .= "loginName='".$loginName."',";
>> if(preg_match('/^[a-z0-9]{5,16}$/i',$PW)) {
>>    // If it's between 5-16 case-insensitive alphanumeric
>>    // characters, it's all good. If you want to allow symbols,
>>    // simply modify the regexp accordingly.
>>    $chpwsql .= "loginPassword='".$PW."',";
>> }
>> $chpwsql .= "email='".$email."',";
>> $chpwsql .= "adminLevel='".$adminLevel',";
>> $chpwsql .= " WHERE Record='".$Record1."'";
>> $chpwsql .= " LIMIT 1";
>>
>>
>
>
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

--

Jason Pruim
Raoset Inc.
Technology Manager
MQC Specialist
3251 132nd ave
Holland, MI, 49424-9337
www.raoset.com
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.