如何读取.sql文件&;是否支持使用javascript的CRUD操作?

如何读取.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,

我正在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,
  `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);
    });
});