2014-11-18 2 views
3

저는 특히 NodeJS와 Javascript 프로그래밍의 아기입니다. 나는 NodeJS와 socket.io를 사용하여 Javascript를 통해 PostgreSQL에 연결하는 방법을 배웠다.NodeJS, socket.io, postgres를 사용하여 sql을 삽입하고 업데이트하는 방법은 무엇입니까?

이 링크를 검색하고 발견했습니다. http://gonzalo123.com/2012/05/07/asynchronous-queries-to-relational-databases-from-browser-with-node-js-and-socket-io/. 그를 따라 갔고 select 및 update 문으로 잘 작동합니다.

그러나 나는 여전히 문에 삽입하고 지정된 값으로 업데이트 할 수 없습니다. 여기에 현재 코드가 있습니다.

서버 측 :

var pg = require('pg'); 

var conString = "tcp://postgres:[email protected]:5432/testdb"; 
var client = new pg.Client(conString); 
client.connect(); 

var io = require('socket.io').listen(8888); 

io.sockets.on('connection', function (socket) { 
socket.on('sql', function (data) { 
var query = client.query(data.sql, data.values); 
query.on('row', function(row) { 
socket.emit('sql', row); 
}); 
}); 
}); 

클라이언트 (HTML) : 모든 데이터가 크롬의 콘솔에 표시와 함께 위의 코드에서

<html> 
<head></head> 
<body> 
<script src="http://localhost:8888/socket.io/socket.io.js"></script> 
<script> 
var socket = io.connect('http://localhost:8888'); 
var mobileno = ''; 
function sendSql(sql, values, cbk) { 
socket.emit('sql', { sql: sql, values : values}); 
socket.on('sql', function(data){ 
    console.log(data); 
}); 
} 

</script>  
<p> 
<a href="#" onclick="sendSql('select * from user', [], function(data)   {console.log(data);})">Select</a> 
</p> 

<a href="#" onclick="sendSql('UPDATE user set mobile = 987654321 where id=12 ', [], function(data) {})">Update</a> 
</p> 
<p> 
    <a href="#" onclick="sendSql('INSERT INTO user (name) values('Michael'),[], function(data) {console.log(data);})">Insert</a> 
</p> 


</body> 
</html> 

는 Select 문은 완벽하게 작동합니다.

Update Statement에 대해 'mobile'열의 데이터를 '987654321'값으로 업데이트 할 수 있습니다. 하지만 내가 원하는 var mobileno = '123456789';의 값이 나는 시도 ...

UPDATE user set mobile = mobileno 

그것은 작품과 서버의 콘솔은 "열 mobileno가 존재하지 않습니다"라는하지 않는 것입니다.

Insert Statement에 대해서는이 사실을 알지 못합니다. 여러 가지 방법으로 구문을 변경하려고했지만 여전히 작동하지 않고 다양한 오류가 발생합니다.

여기 누군가가이 경험이 있어야합니다. 제발 친절하게 업데이 트를 사용하는 방법을 가르쳐 주세요이 일의 진술에 올바르게 삽입합니다.

+3

의심의 여지없이 이것은 내가 본 것 중 가장 안전하지 않은 SQL 구현입니다. –

답변

1

확인. 나는 방금 이것을 풀었다. 이것에 대한 자세한 정보를 검색 한 후, 나는 사용해야한다고 알았습니다.

UPDATE user set mobile = '+mobileno+' 

이 작동하도록했습니다. 구문에 관한 모든 것입니다. 이제 쿼리 문을 직접 처리 할 수 ​​있습니다. 고맙습니다.

관련 문제