使用 JavaScript 连接数据库服务器的方法有多少种
How many ways To Connect Database Server using JavaScript?
我想知道我们可以通过多少种方式使用JavaScript获取服务器数据库,例如使用mongo db,SQLite或任何其他连接服务器数据库的方法
如果你在谈论客户端Javascript,没有办法1。
您必须将消息(可能使用 AJAX 或 WebSockets)发送到服务器上运行的脚本,然后这些脚本将连接到数据库。
1 实际上,在HTML5规范中,WebDB可以访问本地SQLite引擎,但它被弃用了。
感谢大家的宝贵建议,我使用以下方式使用基于浏览器支持的本地数据库:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>SQL Storage</title>
<body>
<br />
<br />
<div align="center">
<input type="hidden" id="id" /> First name:<input type="text"
id="firstName" /><br /> Last name:<input type="text" id="lastName" /><br />
Phone: <input type="text" id="phone" /><br />
<button onClick="resetForm()">Reset Form</button>
<button onClick="updateRecord()">Update</button>
<button onClick="insertRecord()">Insert</button>
<button onClick="dropTable()">Drop Table</button>
<div id="results"></div>
</div>
</body>
<script>
var results = document.getElementById('results');
var id = document.getElementById('id');
var firstName = document.getElementById('firstName');
var lastName = document.getElementById('lastName');
var phone = document.getElementById('phone');
var createStatement = "CREATE TABLE IF NOT EXISTS Contacts (id INTEGER PRIMARY KEY AUTOINCREMENT, firstName TEXT, lastName TEXT, phone TEXT)";
var selectAllStatement = "SELECT * FROM Contacts";
var insertStatement = "INSERT INTO Contacts (firstName, lastName, phone) VALUES (?, ?, ?)";
var updateStatement = "UPDATE Contacts SET firstName = ?, lastName = ?, phone = ? WHERE id = ?";
var deleteStatement = "DELETE FROM Contacts WHERE id=?";
var dropStatement = "DROP TABLE Contacts";
try {
var db = openDatabase("AddressBook", "1.0", "Address Book", 200000);
} catch (e) {
alert(e)
}
var dataset;
createTable();
function onError(tx, error) {
alert(error.message);
}
function showRecords() {
results.innerHTML = '';
db.transaction(function(tx) {
tx.executeSql(selectAllStatement, [], function(tx, result) {
dataset = result.rows;
for ( var i = 0, item = null; i < dataset.length; i++) {
item = dataset.item(i);
results.innerHTML += '<li>' + item['lastName'] + ' , '
item['firstName'] + ' <a href="#" onclick="loadRecord('
+ i + ')">edit</a> '
+ '<a href="#" onclick="deleteRecord(' + item['id']
+ ')">delete</a></li>';
}
});
});
}
function createTable() {
db.transaction(function(tx) {
tx.executeSql(createStatement, [], showRecords, onError);
});
}
function insertRecord() {
db.transaction(function(tx) {
tx.executeSql(insertStatement, [ firstName.value, lastName.value,
phone.value ], loadAndReset, onError);
});
}
function loadRecord(i) {
var item = dataset.item(i);
firstName.value = item['firstName'];
lastName.value = item['lastName'];
phone.value = item['phone'];
id.value = item['id'];
}
function updateRecord() {
db.transaction(function(tx) {
tx.executeSql(updateStatement, [ firstName.value, lastName.value,
phone.value, id.value ], loadAndReset, onError);
});
}
function deleteRecord(id) {
db.transaction(function(tx) {
tx.executeSql(deleteStatement, [ id ], showRecords, onError);
});
resetForm();
}
function dropTable() {
db.transaction(function(tx) {
tx.executeSql(dropStatement, [], showRecords, onError);
});
resetForm();
}
function loadAndReset() {
resetForm();
showRecords();
}
function resetForm() {
firstName.value = '';
lastName.value = '';
phone.value = '';
id.value = '';
}
</script>
</html>
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 有没有什么方法可以通过输入字段(type=file)来找出选择了多少个文件
- 启用帧间通信的postMessage方法的最大大小是多少
- 有没有一种方法可以记录在javascript中创建了多少个实例
- 这个小时 = 小时>=12 是多少?HR-12 : HR;方法
- 使用 JavaScript 连接数据库服务器的方法有多少种
- 任何方法来检测多少浏览器窗口是可见的
- 使用DOM和封装方法,用Javascript OOP传递参数.多少就太多了