mysql - Error executing UPDATE -


i'm having little trouble performing update query node mysql2 module. i'm preparing query using '?' placeholder , passing in values so;

socket.on('connection', function(client){     [...]     client.on('userjoin', function(username, userid){         run_db_insert("update users_table set clientid = ? user = ?", [client.id, userid], function(){             console.log(client.id + ' <=> ' + userid);         });     [...] }); 

unfortunately, raising error; you have error in sql syntax; check manual corresponds mysql server version right syntax use near ''12345678' userid = ?' @ line 1

the data isn't reflected in database. reason, code doesn't appear picking second question mark placeholder , it's not passing correct value (i.e. it's trying find userid of ?).

if change code this;

run_db_insert("update users_table set clientid = ? user = '" + userid + "'", [client.id], function(){ 

...then update runs without error , reflected in db. if console.log both client.id , userid, console correctly reflects these values.

my run_db_insert function follows;

function run_db_insert(sql, args, callback){     var mysql = svc_mysql2.createconnection({         // connection details     });     mysql.connect(function(err){         if(err){             console.log('error connecting db: ' + err);         }     });      mysql.query(sql, [args], function(err){         if (err){             console.log(err);             return;         }         callback();     });     mysql.end(); }; 

i've had no problems performing select or insert queries using multiple '?' placeholders (with modified function has result in line 11 of function , returns in callback), i'm finding update isn't correctly assigning parameters i'm passing in it.

i think problem you're wrapping query replacement values in array, [[client.id, userid]] being passed mysql.query().

try changing:

mysql.query(sql, [args], function(err){ 

to:

mysql.query(sql, args, function(err){ 

Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -