user1555800
user1555800

Reputation: 35

UPDATE table mysql & php

I have the following code and it works fine when updating the score and date. But it won't update the row's name or country. Does this have something to do with the php string??? Very confused!

$userName = "John";
$userCountry = "USA";
$lowestScoreId =  99;
$userPoints = 500;


include 'config.php';


$currentTime = time();

mysql_query("UPDATE highScores SET name = $userName WHERE id='$lowestScoreId'");
mysql_query("UPDATE highScores SET score = $userPoints WHERE id='$lowestScoreId'");
mysql_query("UPDATE highScores SET country =$userCountry WHERE id='$lowestScoreId'");
mysql_query("UPDATE highScores SET date = $currentTime WHERE id='$lowestScoreId'");

Upvotes: 0

Views: 11195

Answers (3)

Joe Malt
Joe Malt

Reputation: 397

Also, you shouldn't use the PHP mysql_ functions anymore. Have a look at MySQLi which is newer, faster and has more features.

Upvotes: 1

juergen d
juergen d

Reputation: 204746

You forgot the quotes around the values you set. And you can do that in 1 query.

UPDATE highScores
SET `name`    = '$userName',
    `score`   = '$userPoints',
    `country` = '$userCountry',
    `date`    = '$currentTime'
WHERE id='$lowestScoreId'"

Upvotes: 11

Brendan
Brendan

Reputation: 3493

You should do this in one statement.

$userName = "John";
$userCountry = "USA";
$lowestScoreId =  99;
$userPoints = 500;

include 'config.php';

$currentTime = time();

mysql_query("UPDATE highScores SET name = '$userName', score = '$userPoints', country = '$userCountry', date = '$currentTime' WHERE id='$lowestScoreId'");

Upvotes: 1

Related Questions