2017-06-27 12 views
0

私は単純なCRUDシステムを搭載したHerokuと共に配備されたNode.JSアプリケーションを持っています。しかし、Webアプリケーション自体で行を更新するたびに問題が発生しています。ここでHeroku Node.JSデータベースエラー

は、UPDATEステートメントのための私のコードは

私server.jsファイルにある
app.post('/logs/edit/:mobile', function(req, res){ 
    var input = JSON.parse(JSON.stringify(req.body)); 
    var mobile = req.params.mobile; 
    var data = {    
     last : input.last, 
     first : input.first, 
     middle : input.middle, 
     mobile : input.mobile, 
     email : input.email, 
     bday : input.bday, 
     status : input.status 
    }; 
    connection.query("UPDATE logs set ? WHERE mobile = ? ",[data,mobile], function(err, rows){ 
     if(err) console.log(err); 
     res.redirect('/logs');   
    }); 
}); 

次に、ここで私はこの1つのソリューションがあります願っています私のログに

2017-06-27T02:09:55.662620+00:00 app[web.1]: { 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 ''Doe', 'Doe', 'Doe', `first` = 'John', 'John', `middle` = 'Mike', 'Mike', `mobil' at line 1 
2017-06-27T02:09:55.662637+00:00 app[web.1]:  at Query.Sequence._packetToError (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14) 
2017-06-27T02:09:55.662639+00:00 app[web.1]:  at Query.ErrorPacket (/app/node_modules/mysql/lib/protocol/sequences/Query.js:83:18) 
2017-06-27T02:09:55.662640+00:00 app[web.1]:  at Protocol._parsePacket (/app/node_modules/mysql/lib/protocol/Protocol.js:280:23) 
2017-06-27T02:09:55.662641+00:00 app[web.1]:  at Parser.write (/app/node_modules/mysql/lib/protocol/Parser.js:73:12) 
2017-06-27T02:09:55.662642+00:00 app[web.1]:  at Protocol.write (/app/node_modules/mysql/lib/protocol/Protocol.js:39:16) 
2017-06-27T02:09:55.662642+00:00 app[web.1]:  at Socket.<anonymous> (/app/node_modules/mysql/lib/Connection.js:96:28) 
2017-06-27T02:09:55.662644+00:00 app[web.1]:  at emitOne (events.js:96:13) 
2017-06-27T02:09:55.662644+00:00 app[web.1]:  at Socket.emit (events.js:188:7) 
2017-06-27T02:09:55.662646+00:00 app[web.1]:  at readableAddChunk (_stream_readable.js:176:18) 
2017-06-27T02:09:55.662646+00:00 app[web.1]:  at Socket.Readable.push (_stream_readable.js:134:10) 
2017-06-27T02:09:55.662648+00:00 app[web.1]:  -------------------- 
2017-06-27T02:09:55.662648+00:00 app[web.1]:  at Protocol._enqueue (/app/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
2017-06-27T02:09:55.662649+00:00 app[web.1]:  at Connection.query (/app/node_modules/mysql/lib/Connection.js:201:25) 
2017-06-27T02:09:55.662650+00:00 app[web.1]:  at /app/server.js:59:16 
2017-06-27T02:09:55.662650+00:00 app[web.1]:  at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) 
2017-06-27T02:09:55.662651+00:00 app[web.1]:  at next (/app/node_modules/express/lib/router/route.js:131:13) 
2017-06-27T02:09:55.662652+00:00 app[web.1]:  at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3) 
2017-06-27T02:09:55.662653+00:00 app[web.1]:  at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) 
2017-06-27T02:09:55.662653+00:00 app[web.1]:  at /app/node_modules/express/lib/router/index.js:277:22 
2017-06-27T02:09:55.662654+00:00 app[web.1]:  at param (/app/node_modules/express/lib/router/index.js:349:14) 
2017-06-27T02:09:55.662654+00:00 app[web.1]:  at param (/app/node_modules/express/lib/router/index.js:365:14) 
2017-06-27T02:09:55.662655+00:00 app[web.1]: code: 'ER_PARSE_ERROR', 
2017-06-27T02:09:55.662656+00:00 app[web.1]: errno: 1064, 
2017-06-27T02:09:55.662657+00:00 app[web.1]: sqlState: '42000', 
2017-06-27T02:09:55.662657+00:00 app[web.1]: index: 0 } 

を示すエラーがあります。

多くのおかげで、私が知っていることについては

答えて

0

は、あなたがdataでやっているようにあなたは彼らにJSONを送信する場合は動作しませんMySQLのバージョンがあります。私はあなたのコードに何が間違っているのかを実際には知っていませんが、あなたのノードコードが何であるかはわかります。

は私が

+0

こんにちはラファエル(コンソールまたはワークベンチを使用して)mysqlの上で直接そのクエリを試してみることをお勧めします、私はHerokuのに使用しているMySQLのバージョンは、コードと互換性があるかどうか全くわからないんだけど私はそれをしましたが、WAMPを通して私のローカルマシン上で実行すると完全に動作します。私はMySQL Workbenchでも同様にクエリを実行しようとしましたが、それは動作します。 –

関連する問題