Re: Verifying syntax executed correctly

From: Date: Wed, 18 Oct 2006 02:48:18 +0000
Subject: Re: Verifying syntax executed correctly
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-42573@lists.php.net to get a copy of this message
Ron Piggott (PHP) wrote:
If I give this command through PHP to mySQL mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $query = "UPDATE table SET last_activity_field = '$current_date' WHERE reference = '$account_reference' LIMIT 1;"; mysql_query($query); mysql_close(); is there a way to know if it executed successfully?
Two ways. Firstly: $result = mysql_query($query); if (!$result) { echo "Bad Query or something!: " . mysql_error() . "<br/>"; } will tell you quickly whether the query worked at all. Secondly php.net/mysql_affected_rows will tell you how many rows that query changed. Lastly I hope that's just an example otherwise you will have problems with sql injection. You can either validate your data before (ie make sure current_date only contains what you expect) or change $query = "UPDATE table SET last_activity_field = '$current_date' WHERE reference = '$account_reference' LIMIT 1;"; to use either mysql_escape_string or mysql_real_escape_string: $query = "UPDATE table SET last_activity_field = '" . mysql_escape_string($current_date) . "' WHERE reference = '" . mysql_escape_string($account_reference) . "' LIMIT 1;"; Depending on which version of php you have (RTM). -- Postgresql & php tutorials http://www.designmagick.com/

« previous php.db (#42573) next »