2014-11-18 6 views
3

Я ребенок в программировании, особенно NodeJS и Javascript. Я узнал о том, как подключиться к PostgreSQL через Javascript, используя NodeJS и socket.io.Как вставить и обновить sql, используя NodeJS, socket.io, postgres правильно?

Я нашел и нашел эту ссылку 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); 
}); 
}); 
}); 

Client (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> 

Из выше кода, выберите оператор работает отлично со всеми данными показывает в консоли Chrome.

Для заявления о обновлении я могу обновить данные в столбце «мобильный» со значением «987654321». Но то, что я хочу, это значение из var mobileno = '123456789'; я пытался ...

UPDATE user set mobile = mobileno 

Он не работает и на консоли сервера говорит «столбец MobileNo не существует».

Для заявления о вставке, я действительно понятия не имею об этом. Пытался изменить синтаксис многими способами, но по-прежнему не может заставить его работать и по-прежнему получать различные ошибки.

Я предполагаю, что у кого-то здесь должен быть опыт работы с этим. Пожалуйста, любезно научите меня, как использовать обновление и вставлять в утверждение этой вещи правильно.

+3

Это, без сомнения, самая небезопасная реализация SQL, которую я когда-либо видел. –

ответ

1

Хорошо. Я просто решил это. После поиска дополнительной информации об этом, я обнаружил, что я должен использовать

UPDATE user set mobile = '+mobileno+' 

, чтобы заставить его работать. Все дело в синтаксисе. Теперь я могу сам делать запросы. Спасибо.