Это мой код для обновления:
$key = $skills[$ind];
echo "\t\t<td>" . $key . "</td>\n";
//explode using a comma as a delimiter
$data_n = explode(",", $word);
$score[$key]["Rank"] = $data_n[0];
$score[$key]["Level"] = $data_n[1];
$score[$key]["Exp"] = $data_n[2];
echo "\t\t<td>" .$data_n[0] . "</td>\n";
echo "\t\t<td>" .$data_n[1] . "</td>\n";
echo "\t\t<td>" .$data_n[2] . "</td>\n";
$result = mysql_query("UPDATE accounts SET $key ='$data_n[1]' WHERE username = '$user'")
or
die(mysql_error());
В принципе, есть строка "ключ", которая является именем вещи, которую я пытаюсь обновить, но она просто не обновляется. Я изменил "mysql_query" на "print", и он выводит именно то, что он должен:
UPDATE accounts SET Total ='1144' WHERE username = 'derekboy'
Ошибок нет. распечатка $result показывает, что он "правда", что он отправил сообщение в MySQL. Может ли кто-нибудь увидеть проблему, потому что я искал целый день и все еще ничего.
Весь мой код находится здесь; Благодарю. Вы можете видеть, что я подключаюсь к базе данных в самой верхней части script.
1) Кажется, вы не подключились к mysql. Ваш код делает mysql_connect
и mysql_select_db
до этого?
2) Попробуйте запустить запрос в PHPMyAdmin (или любой другой клиент MySQL, который вы используете), чтобы увидеть, есть ли какая-либо ошибка или нет. Правильно ли выполняется запрос?
3) Скорее всего, в вашей таблице нет username
со значением derekboy
.
Я не знаю PHP особенно хорошо, но кажется, что вы окружаете переменные одинарными кавычками, в которых переменные не интерполируются.
Попробуйте что-то вроде:
$result = mysql_query("UPDATE accounts SET " . $key . " ='" . $data_n[1] . "' WHERE username = '". $user" . "'") or die(mysql_error());