2016-07-15 77 views
-1
var mysql = require('mysql'); 
var url = require('url'); 

var express = require('express'); 
var http = require('http'); 
var app = express(); 
var aluno, disc; 

app.get('/', function(req, res){ 
    console.log("aluno: " + req.query.aluno); 
    console.log("disc: " + request.query.disc); 

}); 

var connection = mysql.createConnection({ 
host: "localhost", 
user: "root", 
password: "161616", 
database: "matricula" 
}); 

connection.connect(); 

var post = {idDisciplinasMatriculada: aluno*3+disc*2, idDisciplina: disc, idAluno: aluno}; 

connection.query('INSERT INTO DisciplinasMatriculadas SET ?', post, function(err, result) {}); 

當我改變了一些東西,我可以運行它throught CMD接收指定參數時,但是當它接收到一個「/index.js?aluno=2 &盤= 2」,從瀏覽器,沒有任何反應在DB。節點mysql的不插入

有沒有人知道問題可能是什麼?

而且,這裏是HTML文件,我使用:

<html> 
    <head> 
     <title>DisciplinasMatriculadas</title> 
     <script type="text/javascript"></script> 
    </head> 
    <body style="font-family: sans-serif"> 

     <fieldset> 
      <legend>Matricula de aluno em disciplina</legend> 
      ID Aluno: <input type="text" name="aluno" id="aluno"> 
      <br/> 
      ID Disciplina: <input type="text" name="disc" id="disc"> 
      <br/> 
     <input type="button" value="Add" onclick="addDisciplina();"> 
     </fieldset> 

    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 

    <script> 
    function addDisciplina(){ 
    var alunold = $('#aluno').val(); 
    var discold = $('#disc').val(); 
     $.ajax({ 
     url: "http://localhost:80/node/index.js", 
     data: { aluno: alunold, disc: discold} 
     }) 
     .success(function(data){alert('Done.');}) 
     .error(function(x,q,h){}); 
    }; 
    </script> 
    </body> 
</html> 
+0

那麼這種類型的插入語法結合更新語法(與'SET'),除非我失去了一些東西。換句話說,什麼時候插入語句(不是IODKU調用)中使用過的單詞'SET' – Drew

回答

0

佔位符只能代表值。它們不能替代sql關鍵字,字段名稱,表名稱,運算符等......僅限於值。您的查詢必須是更類似於

INSERT ... SET fieldname = ? 

儘管不完全正確,但考慮一個佔位符與字符串文字的等價物。您的版本正在生成相當於:

INSERT ... SET 'fieldname=?' 

這不是分配操作。這是一個字符串,其字符爲f,i,e等等......這個字符串應放在記錄中的位置?沒有要分配的字段,所以這是一個語法錯誤。

+0

已更改,但沒有區別:( var x = disc + aluno * 2; var post = {x ,'disc,aluno}; connection.query('INSERT INTO DisciplinasMatriculadas(idDisciplinasMatriculada,idDisciplina,idAluno)VALUES(?,?,?)',post,function(err,result){}); – Minhoo