Я только что начал с node-mysql и создал базу данных «пользователи». Я могу выбирать и создавать, следуя инструкциям из репозитория. В настоящее время в базе данных есть значения
[ { id: 1, user_login: 'mwilson' },
{ id: 2, user_login: 'newbie' } ]
и поля [id, user_login, user_nicename].
Однако, когда я запускаю функцию обновления для обновления второго пользователя, мои результаты показывают, что у меня есть совпадение 1 строки, но изменено 0 строк, и SELECT подтверждает, что обновления не было.
Мой код:
connection.query('UPDATE users SET user_nicename = ? WHERE user_login = ?', ['New User','newbie'],
function(err, results) {
if(err) {
console.log("Failed on query",err);
} else {
console.log(results);
Полученные результаты:
{ fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '(Rows matched: 1 Changed: 0 Warnings: 0',
protocol41: true,
changedRows: 0 }
И после connection.query('SELECT id, user_login FROM users'):
[ { id: 1, user_login: 'mwilson' },
{ id: 2, user_login: 'newbie' } ]
Самый близкий другой вопрос, который я мог найти для себя, - это синтаксис запроса Node.js mysql выдает ОБНОВЛЕНИЕ ГДЕ. Мой код соответствует формату, указанному в первом ответе; другие попытки дали ошибки запроса. Я также видел сообщение от кого-то, кто получил этот результат при попытке увеличить поле NULL.
Если я использую WHERE id = 2, я получаю ту же ошибку. В моих параметрах конфигурации используется учетная запись, которой я дал разрешения (ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА testdb.* 'dev'@'%', ИДЕНТИФИЦИРОВАННО 'dev';)
Любые мысли о том, как я могу обновить свое обновление?
РЕДАКТИРОВАТЬ: Чтобы сформировать базу данных, которую я запустил:
CREATE TABLE users(
id int auto_increment primary key,
user_login varchar(25),
user_nicename varchar(75)
);
Таким образом, по умолчанию пользовательские поля, кроме идентификатора, имеют значение NULL.
user_nicename
, который не отображается в выбранных или примерных данных. Какое значение имеет это поле до/после обновления? - person Joachim Isaksson   schedule 06.12.2013'INSERT INTO users SET ?', {user_login: 'newbie'}
только для создания второй строки. - person arilaan   schedule 06.12.2013user_nicename
после обновления, вашSELECT
выбирает толькоid
иuser_login
. - person Joachim Isaksson   schedule 06.12.2013