用于搜索数据库中的关键字

时间:2017-08-07 23:46:53

标签: javascript mysql node.js

试图获得使用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>

此刻此功能无效,但即使有人能指出我的一些好教程,我也会很感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

你不能这样做。

首先:require()特定于NodeJS。它在浏览器中不可用。浏览器中提供了一些可以加载它的模块,但mysql不是。

第二,相关:您无法直接从Web浏览器连接到MySQL数据库。在浏览器中运行的Javascript只能与Web服务器建立HTTP连接,即使只是在有限的基础上。

您需要在服务器上实现一个API - 可能使用Node,可能还有其他东西 - 来执行搜索。然后,您可以使用XMLHttpRequest浏览器API - 或基于它的内容,例如jQuery中的$.ajax() - 来调用该API。