使用WHERE子句从JavaScript查询MySQL数据库
我有一个数据库,里面有我的node.js应用程序的名称和地址。该应用程序使用输入到文本提示符中的内容查询名称行使用WHERE子句从JavaScript查询MySQL数据库,javascript,mysql,Javascript,Mysql,我有一个数据库,里面有我的node.js应用程序的名称和地址。该应用程序使用输入到文本提示符中的内容查询名称行 我意识到它们是错误的,现在就把它们翻过来,如果用户搜索Ubuntu,我希望数据库返回,JavaScript新手,任何帮助都将不胜感激 我现在的代码 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root'
我意识到它们是错误的,现在就把它们翻过来,如果用户搜索Ubuntu,我希望数据库返回,JavaScript新手,任何帮助都将不胜感激 我现在的代码
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root', //just using root for my personal testing.
password : 'root',
database : 'Sonic'
});
connection.connect();
//make the query string
var sql01 = 'SELECT Name FROM SonicURl WHERE name = ' +
connection.escape(input);
//Attempt to query the database over the connection.
connection.query( sql01, function(err, rows) {
if (err){
console.log('Error');
} else if (rows[0] !== undefined && input == rows[0].name) {
console.log(rows[0].address);
}
connection.release();
});
//shut down code
process.on( 'SIGINT', function() {
console.log( "\nGoodbye!");
// Other stuff that needs ending and what not.
process.exit( );
});
既然您提到node.js,我假设您正在服务器端执行此操作。 使用node.js mysql模块
//After mysql connection have been made, and it is called connection.
//make the query string
var sql01 = 'SELECT * FROM yourTable WHERE name = ' + connection.escape(yourTextInput);
//Attempt to query the database over the connection.
connection.query( sql01, function(err, rows) {
if (err){
console.log('Error');
} else if (rows[0] !== undefined && yourTextInput == rows[0].name) {
//Do something with address, (rows[0].address).
}
connection.release();
});
更新:
就我个人而言,我使用池连接,但试一试。
这是处理正常连接的标准/推荐方法
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'sonic'
});
connection.connect(function(err) {
if (err) {
console.log('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
//make the query string
var sql01 = 'SELECT * FROM SonicURl WHERE name = ' +connection.escape(input);
//Attempt to query the database over the connection.
connection.query( sql01, function(err, rows) {
if (err){
console.log('Error, no result');
} else if (rows[0] !== undefined && input == rows[0].name) {
console.log(rows[0].address);
}
connection.end();
console.log('Connection should be terminated and this should be empty or undefined:' + connection.threadId);
});
});
如果希望保留当前结构,而不检查连接到DB是否有任何错误(如上面的示例所示),也可以简单地执行以下操作:
connection.connect();
//make the query string
var sql01 = 'SELECT * FROM SonicURl WHERE name = ' + connection.escape(input);
//Attempt to query the database over the connection.
connection.query( sql01, function(err, rows) {
if (err){
console.log('Error');
} else if (rows[0] !== undefined && input == rows[0].name) {
console.log(rows[0].address);
}
});
connection.end();
注意:您不应该选择name,因为这只会返回name=input.的name值 这里有很多事情要处理
嗯,connection.release显然不是一个函数,我在这里遗漏了什么吗?你能发布你的连接代码吗?我会用代码编辑问题。我的坏,connection.release只用于池连接。mysql查询的标准。建议关闭原因:不清楚,或输入错误,基于接受答案下的评论。我不知道你是否费心检查,但有一个接受的答案,我问的很清楚,用户2267175似乎知道我在问什么?我很困惑。。。是的,自动更正决定破坏我的问题;你需要做的就是逃跑。