Jump to content

Version Error with UPDATE query


bano6010

Recommended Posts

Hello,

 

I am trying to use the update command to update my SQL database from PHP but get an error. My version is 5.0.67.

 

Here is the error I get:

 

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(firstname, lastname) VALUES ('S.','')' at line 1

 

I looked up the documentation for the version and can't really see how my code is any different.

 

Here is my code:

$sql = "UPDATE officers SET (firstname, lastname) VALUES ('$_POST[firstname]','$_POST[lastname]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record updated";

 

Here is my table structure:

CREATE TABLE `officers` (
  `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
  `type` TINYTEXT NOT NULL,
  `firstname` TINYTEXT NOT NULL,
  `lastname` TINYTEXT NOT NULL,
  `archived` INTEGER(1) UNSIGNED ZEROFILL NOT NULL,
  PRIMARY KEY (`id`)
)ENGINE=MyISAM
AUTO_INCREMENT=13 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';

 

I'm new to SQL and PHP but I can't see where the syntax error is. Any help would be greatly appreciated.

 

Thanks!

Link to comment
https://forums.phpfreaks.com/topic/143927-version-error-with-update-query/
Share on other sites

VALUES ('$_POST[firstname]','$_POST[lastname]')

 

this is ur problem

finding php variables trough the post methods is generally done by

$_POST['firstname'] --> see the extra inside quotes

 

This wont word to use single quotes inside single quotes !

 

SOLUTION

 

$firstname = $_POST['firstname']

$lastname = $_POST['lastname']

 

then ur code will be

 

VALUES ('$firstname','$lastname')

 

 

This is the syntax definition for an UPDATE query -

 

UPDATE [LOW_PRIORITY] [iGNORE] tbl_name

    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...

    [WHERE where_condition]

    [ORDER BY ...]

    [LIMIT row_count]

 

The syntax you are using is that of an INSERT query. Are you attempting to do an UPDATE or an INSERT?

 

I am trying to do an update.

 

I tried this code:

 

$sql = "INSERT INTO officers (firstname,lastname) VALUES ($firstname,$lastname);"
$result = mysql_query($sql);

 

and I got an error on the second line. I also tried this:

VALUES ('$firstname','$lastname')

and got an error.

 

I guess I don't know enough about it to understand how to read the syntax posted for an UPDATE query. But I am attempting to UPDATE, not INSERT.

I have actually looked at that page and used that site to get where I am now. The problem with that page is that it shows how to use the UPDATE when putting the updates right into the code. Where I am trying to let users make changes in a text box, hit submit and have to record updated. I have it where the current record is being displayed in the text box, but when submit is hit, it gives the error I put in my first post. I am having trouble understanding how to take the information in the text box and post it through the UPDATE query.

I can not see where the syntax error in this code is. I have looked at several different examples and tutorials. It looks correct to me and I just can't see where its going wrong.

 

$sql = "UPDATE officers SET (firstname, lastname) VALUES ('$_POST[firstname]','$_POST[lastname]')";

 

I don't need to define the $_POST[] for first and last name do I? Those should come from the page before correct? In the error is shows both of the values so I assume that its correct. I just have no idea how to proceed.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.