试图获得使用javascript在mysql数据库中搜索关键字的功能,遇到如何在js中执行命令的问题以及如何将输入框中的关键字插入到mysql查询中。
<html>
<head>
<title></title>
<script> function mysqlList(){
var keyword = document.getElementById('keyword').value;
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'xxxxxx',
password : 'xxxxxx',
database : 'joblist',
}
);
connection.connect();
var queryString = 'SELECT name, trello FROM graduates WHERE (name LIKE '%keyword%' OR trello LIKE '%keyword%');
connection.query(queryString, function(err, rows, fields) {
if (err) throw err;
for (var i in rows) {
var console = console.log('name: ', rows[i].name, '|', 'trello: ', rows[i].trello);
}
});
connection.end();
};
window.console = {
log: function(str){
var node = document.createElement("div");
node.appendChild(document.createTextNode(str));
document.getElementById("myLog").appendChild(node);
}
}
</script>
</head>
<body onload="onload();">
<input type="text" name="enter" class="enter" value="" id="keyword"/>
<button onclick="mysqlList()">run query</button>
<p id="myLog"></p>
</body>
</html>
此刻此功能无效,但即使有人能指出我的一些好教程,我也会很感激。
谢谢!
答案 0 :(得分:1)
你不能这样做。
首先:require()
特定于NodeJS。它在浏览器中不可用。浏览器中提供了一些可以加载它的模块,但mysql
不是。
第二,相关:您无法直接从Web浏览器连接到MySQL数据库。在浏览器中运行的Javascript只能与Web服务器建立HTTP连接,即使只是在有限的基础上。
您需要在服务器上实现一个API - 可能使用Node,可能还有其他东西 - 来执行搜索。然后,您可以使用XMLHttpRequest
浏览器API - 或基于它的内容,例如jQuery中的$.ajax()
- 来调用该API。