嘗試按屬性(id,user_name,foo,bar,whatever)選擇條目;Node.js SQL Server代碼似乎是錯誤的,但仍然有效?
這是我的插件代碼;
socket.on('database attribute', function(msg) {
\t \t queryDriver.getAllEntriesByAttribute(gatheringstable, 'user_name', 'john', function(err, gatherings) {
\t \t \t console.log(gatherings);
\t \t \t io.emit('database attribute', gatherings);
\t \t });
\t });
這裏是我的數據庫驅動程序代碼;
QueryDriver.prototype.getAllEntriesByAttribute = function(table, attribute, value, callback) {
\t this.dbclient.query('SELECT * FROM ' + table + ' WHERE ' + attribute + '=' + value, function(err, result) {
\t \t if(err) {
\t \t \t callback(err);
\t \t }
\t \t else {
\t \t \t callback(null, result.rows);
\t \t }
\t });
};
如果我們看一看這個SQL命令一個典型發言,它看起來像"SELECT * FROM table WHERE attribute='value';"
。這將從數據庫中拉出'john'的'user_name'屬性。
這工作我'heroku pg:psql' daemon.
這並不在我的代碼工作,出於某種原因,除非我改變的「價值」,並在命令「屬性」的位置。喜歡這個;
socket.on('database attribute', function(msg) {
\t \t queryDriver.getAllEntriesByAttribute(gatheringstable, 'john', 'user_name', function(err, gatherings) {
\t \t \t console.log(gatherings);
\t \t \t io.emit('database attribute', gatherings);
\t \t });
\t });
然後,它會工作得很好,爲我的Heroku的實現,我可以打電話,並得到[{"id":1,"user_name":"john"}]
,但它拒絕在我的工作「的Heroku PG:psql的」守護進程。
我發現了世界上最良性的SQL錯誤嗎?
現實是否分崩離析?
爲什麼這個工作相反? "user_name"="john"
是您可以稱之爲的實際方式,但"john"="user_name"
是適用於我的唯一正確方式。
順便說一句,執行console.log(ERR);會幫助很多 –