如何读取.sql文件&;是否支持使用javascript的CRUD操作?
我正在phonegap Android平台上工作。我在资产文件夹中有mydatabase.sql文件。我不知道如何处理那个sql文件。基本上,我必须使用javascript加载这个sql文件。 以下是mydatabase.sql中的一些数据:如何读取.sql文件&;是否支持使用javascript的CRUD操作?,javascript,sql,Javascript,Sql,我正在phonegap Android平台上工作。我在资产文件夹中有mydatabase.sql文件。我不知道如何处理那个sql文件。基本上,我必须使用javascript加载这个sql文件。 以下是mydatabase.sql中的一些数据: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE TABLE `media` ( `Id` int(11) NOT NULL auto_increment, `Part` int(11) NOT NULL,
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE `media` (
`Id` int(11) NOT NULL auto_increment,
`Part` int(11) NOT NULL,
`No` int(11) NOT NULL,
`Title_EN` varchar(100) collate utf8_unicode_ci default NULL,
`Year` int(24) default NULL,
PRIMARY KEY (`Id`)
\\
\\another values
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=649 ;
--
-- Dumping data for table `media`
--
INSERT INTO `media` (`Id`, `Part`, `No`, `Title_Hari`, `Type`, `Artist_EN`, `Track`, `Year`) VALUES
(1, 1, 1, 'Sant Sangeet' 'Cassette', NULL, NULL, NULL, 7, NULL),
\\
\\
\\ another values
CREATE TABLE `media1` (
\\ create another table
INSERT INTO `media1`
\\ insert data
\\
\\
mydatabase.sql包含创建表方法和向该表插入值
在js中尝试了一些方法:
Demo.JS:
var db;
function ReadFile() {
console.log("call database");
try
{
if (window.openDatabase)
{
db = openDatabase("../sql/mydatabase.sql", "1.0", " Database", 200000);
console.log("open database");
db.transaction (function (transaction)
{
console.log("transaction database");
var sql = "SELECT * FROM media";
transaction.executeSql (sql, undefined,
function (transaction, result)
{
alert(JSON.stringify(result));
console.log(JSON.stringify(result));
}, function(error){
console.log("error");
});
});
}
else
{
console.log("else database");
// Handle no database support
}
}
catch(err)
{
console.log("error database");
// Handle error
}
}
输出:
call database
open database
transaction database
no such a tabke media
error
所以我的问题是如何在我的应用程序中导入它,或者如何处理这个sql数据库&导入这个数据库之后,如何执行CRUD操作并将查询传递给这个数据库。请推荐一些教程。任何帮助都将不胜感激
谢谢。您可以使用ajax获取
SQL
文件的内容,然后将其作为查询执行。但这里的错误在于,您试图从文件创建数据库,但却无法创建。openDatabase
对象等待这些参数:
- 数据库名称
- 版本号
- 文本描述
- 数据库大小
- 创建回调
db = openDatabase("mydb", "1.0", " Database description", 200000);
那么你有两个选择。我首先使用ajax
描述了一个问题,简单易懂的问题是将查询直接放入javascript
文件中:
db.transaction(function (tx) {
tx.executeSql(
'CREATE TABLE `media` (
`Id` int(11) NOT NULL auto_increment,
`Part` int(11) NOT NULL,
\\ other values
)
');
});
注意:忘记ENGINE=InnoDB DEFAULT CHARSET=utf8…
。这是针对服务器端数据库的
或者使用ajax(即使用jQuery
):
请参阅:您希望但能够使用javascript在您的DB服务器上执行SQL查询吗?正如@Brewal所说,这不是一个常见的用例-但始终可以看到node.js的功能。这并不是说它不常见,如果我们能够这样做,这将是一个严重的安全漏洞。您必须向服务器请求一些东西,然后让它完成请求数据库的工作。基本上,这可以通过一些ajax和php来实现。@Brewal那么使用DB的最佳方式是什么呢?我做错什么了吗?您想从服务器连接到数据库,而不是从每个客户端。然后,每个客户端都可以连接到服务器,请求数据..Thanx以获取您的答案。我对javascript sql完全是新手,这对我来说非常困难。将使用db.transaction方法。如何在此数据库中执行查询?你能推荐一些关于查询的教程或提示吗?有一个很好的教程,或者已经尝试过Ajax。要使用它,我必须初始化数据库。如何初始化它?在使用
openDatabase
Thanx调用ajax之前初始化它。是否有任何工具可以创建sql数据库并启动查询,在那里我可以从文件中获取实际语句作为javascript错误的语句。
$.get("../sql/mydatabase.sql", function(content) {
db.transaction(function (tx) {
tx.executeSql(content);
});
});