MYSQL Update Query Syntax

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dgourd
    New Member
    • Apr 2010
    • 25

    #1

    MYSQL Update Query Syntax

    I am trying to run a really long Update query for my mysql database, but I keep getting a syntax error.
    Code:
    $q = "UPDATE debator SET points = '" . mysqli_real_escape_string($link, $v[$POINTS]) . "', win = '" . mysqli_real_escape_string($link, $v[$WIN]) . "', loss = '" . mysqli_real_escape_string($link, $v[$LOSS]) . "', aff_win = '" .  mysqli_real_escape_string($link, $v[$AFF_WIN]) . "', aff_loss = '" .  mysqli_real_escape_string($link, $v[$AFF_LOSS]) . "', neg_win = '" .  mysqli_real_escape_string($link, $v[$NEG_WIN]) . "', neg_loss = '" .  mysqli_real_escape_string($link, $v[$NEG_LOSS]) . "', aspeaks = '" .  mysqli_real_escape_string($link, $v[$ASPEAKS]) . "', aff_aspeaks = '" .  mysqli_real_escape_string($link, $v[$AFF_ASPEAKS]) . "', neg_aspeaks = '" .  mysqli_real_escape_string($link, $v[$NEG_ASPEAKS]) . "', WHERE name = '" . mysqli_real_escape_string($link, $v[$NAME]) . "';";
    I have used this exact same syntax earlier in my script and it works fine. I am just not seeing the problem. Hopefully, someone can spot it. Thanks!
  • dlite922
    Recognized Expert Top Contributor
    • Dec 2007
    • 1586

    #2
    There is no syntax errors. However you should break out the variable like so to make it easier to read and debug:

    Code:
      
    $points = mysqli_real_escape_string($link, $v[$POINTS]);
    $win = mysqli_real_escape_string($link, $v[$WIN]);
    $loss = mysqli_real_escape_string($link, $v[$LOSS]);
    $aff_win = mysqli_real_escape_string($link, $v[$AFF_WIN]);
    $aff_loss = mysqli_real_escape_string($link, $v[$AFF_LOSS]);
    $neg_win = mysqli_real_escape_string($link, $v[$NEG_WIN]);
    $neg_loss = mysqli_real_escape_string($link, $v[$NEG_LOSS]);
    $aspeaks = mysqli_real_escape_string($link, $v[$ASPEAKS]);
    $aff_aspeaks = mysqli_real_escape_string($link, $v[$AFF_ASPEAKS]);
    $neg_aspeaks = mysqli_real_escape_string($link, $v[$NEG_ASPEAKS]);
    $name = mysqli_real_escape_string($link, $v[$NAME]);
      
      
    $q = "UPDATE debator SET points = '$points', 
                            win = '$win', loss = '$loss', 
                            aff_win = '$aff_win', 
                            aff_loss = '$aff_loss', 
                            neg_win = '$neg_win', 
                            neg_loss = '$neg_loss', 
                            aspeaks = '$aspeaks', 
                            aff_aspeaks = '$aff_aspeaks', 
                            neg_aspeaks = '$neg_aspeaks', 
         WHERE name = '$name';";
    You may have missed a semicolon.

    Dan

    Comment

    • dgourd
      New Member
      • Apr 2010
      • 25

      #3
      Thanks for the help. I changed them all to shorter variables and created this query.
      Code:
      $q = "UPDATE debator SET points = $points, win = $win, loss = $loss, aff_win = $aff_win, aff_loss = $aff_loss, neg_win = $neg_win, neg_loss = $neg_loss, aspeaks = $aspeaks, aff_aspeaks = $aff_aspeaks, neg_aspeaks = $neg_aspeaks WHERE name = '$name';";
      I removed the single quotes around everything except for $name since they are all integers. However, I still keep running into a syntax error.

      Comment

      • dgourd
        New Member
        • Apr 2010
        • 25

        #4
        I fooled around with it and this finally worked:
        Code:
        $q = "UPDATE debator SET points = '$points', win = '$win', loss = '$loss', aff_win = '$aff_win', aff_loss = '$aff_loss', neg_win = '$neg_win', neg_loss = '$neg_loss', aspeaks = '$aspeaks', aff_aspeaks = '$aff_aspeaks', neg_aspeaks = '$neg_aspeaks' WHERE name = '$name'";
        Thanks for your help dlite. Simplifying it really helped.

        Comment

        Working...