Запрос на обновление PHP - PullRequest
0 голосов
/ 18 мая 2011

Я написал PHP-класс, который обновит 4 поля определенной строки в таблице.Строка определяется сессией var 'user' (которая уникальна).Это не работает, но я не уверен, что это из-за запроса или самого класса.Итак, сначала я спрошу вас, ребята, есть ли какие-либо ошибки в этом запросе (вероятно, есть), и когда запрос будет правильным, я посмотрю, есть ли ошибки и в самом классе.

UPDATE tblRegistratie(lengte, gewicht, bmi geluk) WHERE `gebruikersnaam` = '" . $_SESSION['regain-user'] . "'
        VALUES(
        '".mysqli_real_escape_string($conn, $this->Lengte_update)."',
        '".mysqli_real_escape_string($conn, $this->Gewicht_update)."',
        '".mysqli_real_escape_string($conn, $this->BMI_update)."',
        ''".mysqli_real_escape_string($conn, $this->Geluk_update)."',
        );

Ответы [ 6 ]

2 голосов
/ 18 мая 2011

Цитаты здесь выглядят забавно, но я думаю, что ваша проблема - запятая , после последнего параметра:

''".mysqli_real_escape_string($conn, $this->Geluk_update)."',
                                                          ^^^^^
1 голос
/ 18 мая 2011

Вот как должен выглядеть запрос UPDATE.

UPDATE tblRegistratie
SET lengte=mysqli_real_escape_string($conn, $this->Lengte_update),
    gewicht=mysql...etc
    `bmi geluk`=...etc
WHERE `gebruikersnaam` = '" . $_SESSION['regain-user'] . "'

Ваш ничего подобного не выглядит.

1 голос
/ 18 мая 2011

Последняя строка:

    ''".mysqli_real_escape_string($conn, $this->Geluk_update)."',
    ^^//fix the double qoute and make it single '
0 голосов
/ 18 мая 2011

Правильный синтаксис для UPDATE в MySQL будет выглядеть примерно так: *

$sql = "UPDATE tblRegistratie SET
    lengte = '".mysqli_real_escape_string($conn, $this->Lengte_update)."',
    gewicht = '".mysql_real_escape_string($conn, $this->Gewicht_update)."',
    bmi = '".mysql_real_escape_string($conn, $this->BMI_update)."',
    geluk = '".mysqli_real_escape_string($conn, $this->Geluk_update)."'
    WHERE gebruikersnaam = '". $_SESSION['regain-user'];
0 голосов
/ 18 мая 2011

PHP

В последней строке у вас есть две начальные одинарные кавычки.

Исправлено:

''".mysqli_real_escape_string($conn, $this->Geluk_update)."',

становится

'".mysqli_real_escape_string($conn, $this->Geluk_update)."',

MySQL

Кроме того, ваш синтаксис UPDATE представляется полностью недействительным. Прочитайте документацию .

0 голосов
/ 18 мая 2011

Вы должны иметь предложение where после значений, которые вы устанавливаете.Кроме того, звучит так, как будто у вас есть некоторые проблемы с пунктуацией.

Для общего удобства чтения рассмотрите следующее переписывание:

$query = 'UPDATE tblRegistratie
    SET `lengte` = "' . mysqli_real_escape_string($conn, $this->Lengte_update) . '",
        `gewicht` = "' . mysqli_real_escape_string($conn, $this->Gewicht_update) . '",
        `bmi` = "' . mysqli_real_escape_string($conn, $this->BMI_update) . '",
        `geluk` = "' . mysqli_real_escape_string($conn, $this->Geluk_update) . '"
    WHERE `gebruikersnaam` = "' . $_SESSION['regain-user'] . '"
';

Кроме того, такие функции, как sprintf () могут быть вашими друзьями,:)

$query = sprintf('UPDATE `tblRegistratie`
     SET `lengte` = "%s",
         `gewicht` = "%s",
         `bmi` = "%s",
         `geluk` = "%s"
     WHERE `gebruikersnaam` = "%s";', 
     mysqli_real_escape_string($conn, $this->Lengte_update),
     mysqli_real_escape_string($conn, $this->Gewicht_update),
     mysqli_real_escape_string($conn, $this->BMI_update),
     mysqli_real_escape_string($conn, $this->Geluk_update),
     $_SESSION['regain-user']
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...