Обновить запрос Вставить MySQL - PullRequest
0 голосов
/ 30 ноября 2011

Здравствуйте, я был вчера здесь с этой проблемой, я не знаю, как правильно использовать этот сайт, так как я новичок, поэтому я разместил. но я получаю ошибку с этим блоком кода, и я думаю, что это запрос на обновление, который содержит синтаксическую ошибку.

// Обновляется, если запись игрока уже существует

    $result = mysql_query("UPDATE PlayerStat SET Position='$POS', Number='$NUM', Name='$PlyrName', Status='$Status', TDS='$TDS', INT='$INT', YDS='$YDS', RTG='$RTG', Team='$Team' WHERE Name='$PlyrName'");
    echo mysql_error();
    if (mysql_affected_rows()==0){
        // Populates table if record is non existent
        $result = mysql_query("INSERT INTO PlayerStat(`Position`, `Number`, `Name`, `Status`, `TDS`, `INT`, `YDS`, `RTG`, `Team`) VALUES ('$POS','$NUM','$PlyrName','$Status','$TDS','$INT','$YDS','$RTG','$Team')");
        echo mysql_error();
    }

Сообщение об ошибке

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с INT = '1', YDS = '86 ', RTG = '52 .5', Team = 'ARI' WHERE Name = 'Bartel, Richard' ' в строке 1

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

INT - это ключевое слово в mysql (объявляет и целое), если это имя вашего столбца, вы должны заключить его в обратные черты (`) следующим образом:` INT`.

Хорошей практикой является их установка, хотя они не обязательны во всех случаях

UPDATE
    PlayerStat
SET
    `Position` =  '$POS',
    `Number` = '$NUM',
    `Name` = '$PlyrName',
    `Status` = '$Status',
    `TDS` = '$TDS',
    `INT` = '$INT',
    `YDS` = '$YDS',
    `RTG` = '$RTG',
    `Team` = '$Team'
WHERE
    `Name` = '$PlyrName'
1 голос
/ 30 ноября 2011

Две вещи:

  1. Проверьте руководство для INSERT ... ON DUPLICATE KEY UPDATE, которое должно сделать это в одном утверждении.

  2. Я предлагаю вам взятьвнимательно посмотрите на mysql_real_escape_string () или аналогичную в PHP, чтобы скрыть ваши данные и предотвратить SQL-инъекции.

Если вы не знаете, что такое SQL-инъекции, найдите их в Google и потратить немноговремя читать СЕЙЧАС, пока не стало слишком поздно, и у какого-нибудь взломщика или сценаристки появилась ваша база данных.

Надеюсь, это поможет!

0 голосов
/ 30 ноября 2011

Вы можете проверить эти сайты.http://www.w3schools.com/php/php_mysql_update.asp http://www.tizag.com/mysqlTutorial/mysqlupdate.php

И вы также можете проверить свою орфографическую ошибку или одинарную или двойную кавычку.Кроме этого, проверьте названия вашей базы данных и тип данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...