插入查询无法正常工作

时间:2013-11-04 15:07:29

标签: javascript mysql html5 node.js canvas

我正在开发一个node.js和HTML5应用程序,用户可以在画布上绘制内容,其他用户可以查看它。正在绘图的用户被提供了一个按钮,用于将他们绘制的图像保存到数据库(MySQL)中。我将canvas的dataURL保存到数据库中,当我使用此代码测试时,插入查询工作正常:

var http = require('http');
var mysql = require('mysql');
var express = require('express');
var app = express();
var server = http.createServer(app);
server.listen(3000,function(){ console.log('server listening')});
var con = mysql.createConnection({
        host:'localhost',
        user:'root',
    password:'mypass',
    database:'my_db'
});
con.connect();
data = ['Anna','Cat',1,'data:image/png;base64,....the rest dataURL...'];
con.query('insert into sketches values("'+data[0]+'","'+data[1]+'",'+data[2]+',"'+data[3]+'")',function(err,result){
    if(err){
        console.log('error!!!');
        throw err;
    }
    else console.log('insertion succesful');
});

但是当我在真实应用中插入此代码时,表格中没有插入。

在HTML5页面上,我写道:

$("#savebutton").click(function() {
    var packet = db.sendimage(name,image_name,image_no);
    alert(packet);
    socket.emit('saveimage',packet);                
});

这是sendimage的定义

// Send button function
this.sendimage=function(name,image_name,no) {
    // get base64 encoded png data url from Canvas
    var img_dataurl = canvas.toDataURL("image/png");
    console.log("in send image  "+img_dataurl);
    var data = [name,image_name,no,img_dataurl];
    return data;
}

这是服务器端脚本

socket.on('saveimage', function(data){
    console.log("in save image");
    con.query('USE my_db');
    con.query('insert into sketches values ("'+data[0]+'","'+data[1]+'",'+data[2]+',"'+data[3]+'")',function(err,result){   
        console.log("in insert query");
        if (err){   
            console.log('ERROR: ' + err);
            throw err;
        }
        console.info("succesfully inserted");
    });

});

任何人都可以帮忙,我做错了什么?

0 个答案:

没有答案