2013-11-15 21 views
5

Bu, süper kolay olmalı ve yaklaşık iki saat boyunca sıkışmış gibi görünüyor. Dört ayrı insan baktı ve bariz bir problem bulamadı. Yani tekrar SO topluluğuna dönüyorum.Mysql-node ile hata oluşumu

Gerçek basit - Sadece mysql-node ile bir mysql veritabanına veri eklemek için çalışıyorum. Bağlantı hatası alıyorum ve SELECT yalnızca iyi çalışıyor. Kullanılan kod şudur:

exports.postNewCast = function(data, res) { 
    var query = "INSERT INTO cast (name, portrait, role, bio) VALUES ('" + data.name + "', '" + data.portrait + "', '" + data.role + "', '" + data.bio + "');"; 
    console.log(query); 
    dbConnection.query(query, data, function(err, result) { 
    if (err) { 
     console.log(err); 
    } else { 
     sendResponse(res, "Cast Member Added", 201); 
    } 
    }); 
}; 

açmış olan hatadır: (benim için)

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cast (name, portrait, role, bio) VALUES ('Jessie', 'images/cast/marissa.jpg', 'L' at line 1] 
    code: 'ER_PARSE_ERROR', 
    errno: 1064, 
    sqlState: '42000', 
    index: 0 } 

garip kısmı (sunucu çalıştığı yerde) benim terminal penceresinden kopyalayabilirsiniz olmasıdır console.coned sorgu dizesi ve mysql komut satırına yapıştırın ve gayet iyi çalışıyor. Ben, kullanıcı sunucusunun izinleri olduğundan emin olmak için GRANT kullanmayı denedim ve bu hiçbir şey yapmadı. INSERT INTO sözdizimini doğrudan çalışma kaynaklarından kopyalayıp/yapıştırmayı ve yalnızca veriye özgü alanlarımı değiştirmeyi denedim. VALUES kullanmayı denedim mi? seçenek, ardından bir veri nesnesi ve aynı sonucu aldım.

Peki ne aptalca hata yapıyorum?

Teşekkürler.

+5

'tablonun etrafına' '' '' '' '' '' \ '' –

+1

gibi bir arka plan ekleyin. Tek tırnak demek istedin ve işe yaramadı. Ama geri keneler yaptı. – DrHall

cevap

7

İlya Bursov gibi her sütun adının etrafında `` koymak için deneyin. 'Cast' özel bir kelime mi, yoksa neyin işe yarayıp yaramayacağına emin değilim, ama işe yaraması için tablo adının etrafında geri çekler ("` ") gerekiyordu.

1

, doğru vardı kuşaklar için bu cevabı ekleyerek bu

"INSERT INTO cast (`name`, `portrait`, `role`, `bio`) VALUES ('" + data.name + "', '" + data.portrait + "', '" + data.role + "', '" + data.bio + "');"; 
İlgili konular