SQL có phải là một phần của HTML không?

API cơ sở dữ liệu Web SQL không phải là một phần của đặc tả HTML5, nhưng nó là một đặc tả riêng biệt, được giới thiệu một bộ API để sử dụng cơ sở dữ liệu máy khách hoạt động SQL

Nếu bạn là một lập trình viên Web phía sau, thì các thao tác SQL sẽ dễ hiểu

Bạn cũng có thể tham khảo bài hướng dẫn SQL của chúng tôi để tìm hiểu thêm kiến ​​thức thao tác cơ sở dữ liệu

Cơ sở dữ liệu Web SQL có thể hoạt động trong phiên bản mới nhất của trình duyệt Safari, Chrome và Opera


phương pháp cốt lõi

Sau đây là ba phương thức cốt lõi được định nghĩa trong đặc tả

  1. cơ sở dữ liệu mở. Phương pháp này sử dụng cơ sở dữ liệu hiện có hoặc tạo cơ sở dữ liệu đối tượng cơ sở dữ liệu mới
  2. Giao dịch. Phương pháp này cho phép chúng tôi kiểm soát một giao dịch và dựa trên trường hợp này cam kết hoặc khôi phục
  3. thực thiSql. Phương pháp này được sử dụng để thực hiện truy vấn SQL thực tế

Cơ sở dữ liệu mở

Chúng ta có thể sử dụng phương thức openDatabase() để mở một cơ sở dữ liệu đã tồn tại, nếu cơ sở dữ liệu chưa tồn tại thì tạo một cơ sở dữ liệu mới, sử dụng đoạn mã sau

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

phương thức openDatabase () của năm tham số tương ứng với mô tả

  1. Tên cơ sở dữ liệu
  2. số phiên bản
  3. Văn bản mô tả
  4. Kích thước cơ sở dữ liệu
  5. Tạo một cuộc gọi lại

Tham số thứ năm, tạo một cuộc gọi lại sẽ được gọi sau khi tạo cơ sở dữ liệu


Để thực hiện các thao tác truy vấn

Thực thi sử dụng cơ sở dữ liệu. chức năng giao dịch ()

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {  
   tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
});

Câu lệnh trên tạo một bảng có tên LOGS trong cơ sở dữ liệu 'mydb' sau khi thực hiện


Chèn dữ liệu

Sau khi thực hiện câu lệnh trên để tạo bảng, chúng ta có thể chèn một số dữ liệu

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
   tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "本教程")');
   tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.w3big.com")');
});

Chúng ta cũng có thể sử dụng một giá trị động để chèn dữ liệu

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {  
  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
  tx.executeSql('INSERT INTO LOGS 
                        (id,log) VALUES (?, ?'), [e_id, e_log];
});

Ví dụ e_id e_log và các biến bên ngoài, tham số mảng execSql được ánh xạ tới từng mục trong "?. "

Xin lưu ý rằng kể từ ngày 18 tháng 11, W3C không còn hoạt động tích cực trên đặc tả Cơ sở dữ liệu Web SQL

API cơ sở dữ liệu Web SQL thực sự không phải là một phần của đặc tả HTML5, nhưng nó là một phần của bộ đặc tả cho phép các nhà phát triển của chúng tôi xây dựng các ứng dụng web chính thức, vì vậy đã đến lúc chúng ta tìm hiểu và kiểm tra nó

Có cái gì trong hộp vậy?

Nếu bạn chưa đoán được từ tiêu đề đặc tả quá dài dòng, Cơ sở dữ liệu Web SQL là một đặc tả mang SQL đến phía máy khách. Nếu bạn có kiến ​​thức nền về lập trình viên back-end, thì có lẽ bạn sẽ quen thuộc với SQL và vui vẻ như một con lợn trong đống phân. Nếu không, bạn có thể muốn tìm hiểu một số SQL trước khi bắt đầu hack xung quanh, Google là bạn của bạn tại đây

Thông số kỹ thuật dựa trên SQLite (3. 1. 19), nhưng bản thân tôi đến từ MySQL, tất cả đều giống nhau (xin lỗi vì tuyên bố sâu rộng. )

Để biết ví dụ về Cơ sở dữ liệu Web SQL đang hoạt động, hãy xem bản trình diễn trò chuyện trên Twitter HTML5 mà tôi đã tổng hợp

đặt hàng levitra

Nó sử dụng SQL và mệnh đề WHERE để thu hẹp cuộc trò chuyện gần đây về HTML5 trên Twitter (nó sẽ hoạt động trong Safari, Chrome và Opera 10. 50)

Có ba phương pháp cốt lõi trong thông số kỹ thuật mà tôi sẽ trình bày trong bài viết này

  1. openDatabase
  2. transaction
  3. executeSql

Hỗ trợ là một chút chắp vá vào lúc này. Chỉ Webkit (Safari, SafariMobile và Chrome) và Opera 10. 50 (ATOW alpha trên Mac) hỗ trợ cơ sở dữ liệu web. Bác sĩ Bruce Lawson đã nói với tôi rằng Firefox đang tạm dừng vì họ cảm thấy có một triển khai tốt hơn SQLite (mặc dù tôi hy vọng nó tương tự, bất kể họ chọn gì). Dù bằng cách nào, tôi chắc chắn khuyên bạn nên kiểm tra tài liệu SQLite để biết các chức năng có sẵn

Do sự hỗ trợ chắp vá này và thực tế đơn giản là Webkit đã triển khai thông số kỹ thuật cơ sở dữ liệu một thời gian trước, thông số kỹ thuật trên W3C hiện đi trước một chút so với việc triển khai trong Safari, trong khi Webkit vẫn đang bắt kịp. Mặt khác, vì Opera chỉ mới bổ sung hỗ trợ, nên nó gần với thông số kỹ thuật hơn (tôi sẽ đề cập đến sự khác biệt khi chúng ta tiếp tục)

Tuy nhiên, thật thú vị khi chơi cùng, vì vậy hãy bắt đầu chơi

Tạo và mở cơ sở dữ liệu

Nếu bạn cố mở một cơ sở dữ liệu không tồn tại, API sẽ tạo nó một cách nhanh chóng cho bạn. Bạn cũng không phải lo lắng về việc đóng cơ sở dữ liệu

Để tạo và mở cơ sở dữ liệu, hãy sử dụng đoạn mã sau

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);

Tôi đã truyền bốn đối số cho phương thức openDatabase. đó là

  1. Tên cơ sở dữ liệu
  2. số phiên bản
  3. mô tả văn bản
  4. Kích thước ước tính của cơ sở dữ liệu

Tính năng còn thiếu của openDatabase (Tôi không chắc nó được thêm vào khi nào) là đối số thứ năm

  1. gọi lại tạo

Cuộc gọi lại tạo sẽ được gọi nếu cơ sở dữ liệu đang được tạo. Tuy nhiên, nếu không có tính năng này, cơ sở dữ liệu vẫn đang được tạo một cách nhanh chóng và được phiên bản chính xác

Giá trị trả về từ openDatabase chứa các phương thức giao dịch, vì vậy chúng tôi sẽ cần nắm bắt giá trị này để có thể thực hiện các truy vấn SQL

Kích thước cơ sở dữ liệu ước tính

Từ các thử nghiệm tôi đã chạy, chỉ Safari nhắc người dùng nếu bạn cố tạo cơ sở dữ liệu vượt quá kích thước của kích thước cơ sở dữ liệu mặc định, 5MB. Lời nhắc được hiển thị trong hình ảnh bên dưới, hỏi xem bạn có muốn cấp quyền cho cơ sở dữ liệu để mở rộng quy mô lên kích thước tiếp theo của cơ sở dữ liệu hay không — 5, 10, 50, 100 và 500MB. Mặt khác, Opera xây dựng cơ sở dữ liệu mà không phàn nàn gì, điều mà tôi mong đợi có thể thay đổi sau này vì nó vẫn ở dạng alpha

SQL có phải là một phần của HTML không?

phiên bản

Tôi có thể sai, nhưng mọi thứ tôi đã kiểm tra cho đến nay đều nói rằng việc lập phiên bản trong cơ sở dữ liệu SQL đã bị hỏng. vấn đề là đây

Nếu bạn nâng cấp cơ sở dữ liệu của mình lên phiên bản 2. 0 (e. g. , có một số thay đổi lược đồ quan trọng kể từ phiên bản 1. 0), làm cách nào để bạn biết khách truy cập nào trên phiên bản 1. 0 và trên phiên bản 2. 0?

Số phiên bản là một đối số bắt buộc đối với openDatabase, vì vậy bạn phải biết số phiên bản trước khi thử mở nó. Nếu không, một ngoại lệ được ném

Ngoài ra,

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  // here be the transaction
  // do SQL magic here using the tx object
});
3, phương pháp thay đổi phiên bản cơ sở dữ liệu, không được hỗ trợ đầy đủ trong Webkit. Nó hoạt động trong Chrome và Opera, nhưng không hoạt động trong Safari hoặc Webkit. Bất kể, nếu tôi không thể xác định phiên bản cơ sở dữ liệu mà người dùng đang sử dụng, thì tôi không thể nâng cấp người dùng

Một cách giải quyết khả thi là duy trì cơ sở dữ liệu trạng thái, giống như cơ sở dữ liệu 'mysql' trong MySQL. Bằng cách này, bạn sẽ chỉ có một phiên bản của cơ sở dữ liệu trạng thái này và trong phiên bản này, bạn sẽ ghi lại phiên bản hiện tại của bất kỳ cơ sở dữ liệu nào kiểm soát ứng dụng của bạn. Đó là một hack, nhưng nó hoạt động

giao dịch

Bây giờ chúng tôi đã mở cơ sở dữ liệu của mình, chúng tôi có thể tạo giao dịch. Tại sao phải bận tâm với các giao dịch thay vì chỉ chạy SQL của chúng tôi? . Điều này có nghĩa là nếu một giao dịch — có thể chứa một hoặc nhiều câu lệnh SQL — không thành công (cả SQL hoặc mã trong giao dịch), thì các bản cập nhật cho cơ sở dữ liệu sẽ không bao giờ được chuyển giao — i. e. như thể giao dịch chưa bao giờ xảy ra

Ngoài ra còn có các cuộc gọi lại lỗi và thành công trong giao dịch, vì vậy bạn có thể quản lý lỗi, nhưng điều quan trọng là phải hiểu rằng các giao dịch có khả năng khôi phục các thay đổi

Giao dịch chỉ đơn giản là một chức năng có chứa một số mã

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  // here be the transaction
  // do SQL magic here using the tx object
});

Gần đây tôi đã tải bản trình diễn lên html5demos. com thể hiện việc khôi phục giao dịch đang hoạt động. Bản demo khôi phục cơ sở dữ liệu Web SQL

Trong các bản dựng trình duyệt hàng đêm, chúng tôi cũng có

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  // here be the transaction
  // do SQL magic here using the tx object
});
4, chỉ cho phép các câu lệnh đọc chạy trên cơ sở dữ liệu. Tôi cho rằng có những lợi ích về hiệu suất khi sử dụng
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  // here be the transaction
  // do SQL magic here using the tx object
});
5 chỉ đọc thay vì transaction đọc/ghi, hầu hết có thể liên quan đến việc khóa bảng

Bây giờ chúng tôi đã có đối tượng giao dịch của mình (có tên là

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  // here be the transaction
  // do SQL magic here using the tx object
});
7 trong ví dụ của tôi), chúng tôi đã sẵn sàng để chạy một số SQL

thực thiSql

Đây là kênh tình yêu dành cho tất cả sự tốt đẹp của SQL của bạn. executeSql được sử dụng cho cả câu lệnh đọc và viết, bao gồm phép chiếu SQL injection và cung cấp phương thức gọi lại để xử lý kết quả của bất kỳ truy vấn nào bạn có thể đã viết

Khi chúng tôi có một đối tượng giao dịch, chúng tôi có thể gọi executeSql

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});

Thao tác này bây giờ sẽ tạo một bảng đơn giản có tên là “foo” trong cơ sở dữ liệu của chúng ta có tên là “mydb”. Lưu ý rằng nếu cơ sở dữ liệu đã tồn tại thì giao dịch sẽ không thành công, do đó mọi SQL kế tiếp sẽ không chạy. Vì vậy, chúng tôi có thể sử dụng một giao dịch khác hoặc chúng tôi chỉ có thể tạo bảng nếu nó không tồn tại, điều mà tôi sẽ thực hiện ngay bây giờ để tôi có thể chèn một hàng mới vào cùng một giao dịch

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
});

Bây giờ bảng của chúng tôi có một hàng duy nhất bên trong nó. Điều gì sẽ xảy ra nếu chúng ta muốn chụp văn bản từ người dùng hoặc một số nguồn bên ngoài? . Đối số thứ hai để executeSql ánh xạ dữ liệu trường vào truy vấn, như vậy

tx.executeSql('INSERT INTO foo (id, text) VALUES (?, ?)', [id, userValue]);

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
1 và
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
2 là các biến bên ngoài và executeSql ánh xạ từng mục trong đối số mảng tới dấu “?”

Cuối cùng, nếu chúng ta muốn chọn các giá trị từ bảng, chúng ta sử dụng hàm gọi lại để nắm bắt kết quả

tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
  var len = results.rows.length, i;
  for (i = 0; i < len; i++) {
    alert(results.rows.item(i).text);
  }
});

(Lưu ý rằng trong truy vấn này, không có trường nào được ánh xạ, nhưng để sử dụng đối số thứ ba, tôi cần chuyển vào một mảng trống cho đối số thứ hai. )

Cuộc gọi lại nhận đối tượng giao dịch (một lần nữa) và đối tượng kết quả. Đối tượng results chứa đối tượng

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
4, giống như mảng nhưng không phải là mảng. Nó có độ dài, nhưng để đến từng hàng riêng lẻ, bạn cần sử dụng
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
5, trong đó
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
6 là chỉ mục của hàng. Điều này sẽ trả về một đại diện đối tượng của hàng. Ví dụ: nếu cơ sở dữ liệu của bạn có trường
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
7 và trường
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
8, thì hàng đó sẽ chứa thuộc tính
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
7 và thuộc tính
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
8. Giá trị của trường
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE foo (id unique, text)');
});
8 có thể được truy cập bằng cách sử dụng
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
});
2

Đó là tất cả những gì bạn cần để bắt đầu với Cơ sở dữ liệu Web SQL. Tôi chắc chắn rằng các thư viện JavaScript nhỏ sẽ xuất hiện để giúp hỗ trợ làm việc với cơ sở dữ liệu. Nếu bạn muốn tìm hiểu thêm về cơ sở dữ liệu SQL (bắt đầu tự quảng cáo không biết xấu hổ) Tôi vừa hoàn thành chương lưu trữ cho Giới thiệu HTML5 mà tôi đang viết cùng với đồng nghiệp Doc Bruce, vì vậy hãy xem cả cậu bé hư đó

trình diễn

  • Bản trình diễn HTML5 hiển thị cách sử dụng cơ sở dữ liệu đơn giản
  • Trình diễn HTML5 về một giao dịch quay trở lại
  • Bản trình diễn hiển thị lựa chọn phạm vi thời gian bằng SQLite
  • Loại

    • API JavaScript
    • thẻ

    • api
    • cơ sở dữ liệu
    • HTML5
    • html5
    • jav
    • sql
    • kho

Remy Sharp

Bài viết này được viết bởi Remy Sharp . Remy (@rem trên Twitter) là người sáng lập jQuery dành cho nhà thiết kế và hội thảo Full Frontal JavaScript, nếu không thì anh ấy là nhà phát triển và người viết blog. Nói chung, anh ấy phát cuồng về JavaScript, HTML & CSS như một con sóc phát cuồng trong mùa đông.

94 Phản hồi về bài viết “Giới thiệu Cơ sở dữ liệu Web SQL”

  • Giới thiệu Cơ sở dữ liệu Web SQL. Bác sĩ HTML5. Dịch vụ trực tuyến miễn phí Drakz nói.

    […] được đăng tại đây. Giới thiệu Cơ sở dữ liệu Web SQL. HTML5 Doctor Chia sẻ và […]

  • BWRic nói.

    “Firefox đang ngừng hoạt động vì họ cảm thấy có một triển khai tốt hơn SQLite”

    Bất kỳ ý tưởng những gì họ đang tìm kiếm để thực hiện?

  • Shelley nói.

    Tôi không mong đợi thông số kỹ thuật này sẽ đi đến đâu vì các phụ thuộc bên ngoài. Điều quan trọng là những người đọc bài đăng này phải biết rằng có khả năng cao là chuyện này sẽ không đi đến đâu

    từ thông số kỹ thuật

    “Thông số kỹ thuật này đã đi đến chỗ bế tắc. tất cả những người triển khai quan tâm đã sử dụng cùng một chương trình phụ trợ SQL (Sqlite), nhưng chúng tôi cần nhiều triển khai độc lập để tiến hành theo lộ trình chuẩn hóa. Cho đến khi một người triển khai khác quan tâm đến việc triển khai thông số kỹ thuật này, thì phần mô tả về phương ngữ SQL chỉ đơn giản là một tham chiếu đến Sqlite, điều này không được chấp nhận đối với một tiêu chuẩn. Nếu bạn là người triển khai quan tâm đến việc triển khai chương trình phụ trợ SQL độc lập, vui lòng liên hệ với người biên tập để họ có thể viết một đặc tả cho phương ngữ, do đó cho phép đặc tả này tiếp tục. ”

    Hãy suy nghĩ về những gì điều này đang yêu cầu. Bây giờ, bạn tin điều này thực tế đến mức nào?

    Tôi đã không bao gồm nó trong cuốn sách của tôi

  • Remy Sharp nói.

    @Shelly - Tôi đã đọc thông số kỹ thuật và có cùng suy nghĩ đó. Tôi không thể tưởng tượng rằng sẽ sớm có một phiên bản SQL cụ thể (cá nhân tôi nửa mong rằng điều này sẽ không bao giờ xảy ra)

    Điều đó không có nghĩa là nó không nên được thảo luận hoặc chơi với. Có những nền tảng mà trình duyệt được các nhà phát triển biết đến (tôi. e. không phải là một ví dụ tuyệt vời, nhưng những người viết ứng dụng web cho iPhone), vì vậy đây là một công nghệ có thể được khai thác

  • Shelley nói.

    Rémy, thật. nếu bạn đang làm việc trong một môi trường không phải web thông thường, chẳng hạn như phát triển iPhone, thì tất cả những gì bạn cần lo lắng là việc triển khai được Safari hỗ trợ. Tương tự, với các điện thoại thông minh khác và sử dụng Opera mini, hoặc bất cứ thứ gì

    Nhưng tôi không nghĩ sẽ có một “tiêu chuẩn” W3C để cung cấp mức độ ổn định mà nhiều công ty đang hướng tới. Tôi nghĩ rằng cái này sẽ luôn là một triển khai maverick, bởi vì nó sẽ luôn phụ thuộc vào SQLite

    Tôi cho rằng Google có thể tạo chương trình phụ trợ cơ sở dữ liệu quan hệ của riêng mình cho việc này — nhưng bạn biết đấy, gần đây công ty đã không đưa ra những lựa chọn tốt nhất, vì vậy tôi sẽ do dự khi sử dụng giải pháp thay thế SQLite mà công ty đưa ra

    Mọi người phải suy nghĩ về điều này, và tự hỏi mình. nó cung cấp những gì mà localStorage sẽ không cung cấp?

    Có thể họ làm, và họ có đủ khả năng thực hiện hạn chế. Điều đó thật tuyệt, miễn là kỳ vọng của mọi người về nơi tất cả những điều này sẽ diễn ra là thực tế. Và mọi người biết đây không phải là một thành phần của HTML5

  • Shelley nói.

    Xin lỗi, "sẽ muốn", không phải "đi theo cách"

  • Đánh dấu nói.

    Hơi lạc đề – 'relative_time' dường như không hoạt động chính xác. Tất cả các tweet được liệt kê là '[đã đăng chưa đầy 5 giây trước]'

  • edvakf nói.

    @BWRic

    “Firefox đang ngừng hoạt động vì họ cảm thấy có một triển khai tốt hơn SQLite”

    Điều này là không đúng sự thật. Mozilla và Microsoft cho rằng việc yêu cầu một phiên bản SQLite cụ thể (dưới dạng thư viện và dưới dạng phương ngữ SQL) là quá có hại cho web vì họ không thể đảm bảo các phiên bản trong tương lai của SQLite sẽ tương thích với phiên bản hiện tại

    Bạn có thể đọc thêm về nó trong các liên kết dưới đây

    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/0326. html


    http. // danh sách. w3. org/Archives/Public/public-webapps/2009AprJun/1242. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/0426. html
    http. // o-micron. blogspot. com/2009/09/now-published-alternative-to-sql-for. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009AprJun/0106. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009JulSep/1136. html

    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/0674. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/1263. html

    Cuối cùng Hixie quyết định rằng anh ấy không muốn đẩy thông số kỹ thuật hơn nữa trừ khi có bất kỳ nhà cung cấp nào muốn triển khai Cơ sở dữ liệu Web SQL mà không cần sử dụng SQLite
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/0942. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/1052. html
    http. // danh sách. w3. org/Archives/Public/public-webapps/2009OctDec/1078. html

  • Stuart Jones nói.

    Không quan tâm – lợi thế của điều này so với hệ thống Ajax/Máy chủ được triển khai tốt là gì?

  • mors says.

    Xin chào
    I’m an Opera developer, and participated in Opera’s Web DB implementation

    Về bài viết. simple and sweet, but you could have covered error handling better. Note that there is window. SQLError. You can also use resultSet. rows[index], per the specification

    Chỉ cần một vài nhận xét về việc triển khai Opera
    – Opera provides a default quota of 5MB per domain (origin in html5). Only after trying to overflow that quota will Opera request anything from the user. Current betas of 10. 50 don’t implement the request, but the final will
    – the quota is shared among all databases for a single origin
    – Opera support a query execution timeout, so if you do a cartesian merge of a couple billion rows, it won’t lock the database in a never ending statement
    – you can see which databases Opera has created by looking at opera. webdatabases
    – nếu cơ sở dữ liệu trống, Opera sẽ áp dụng xóa nó khi được GCed, nếu không, bạn có thể sử dụng opera một cách rõ ràng. xóa Cơ sở dữ liệu (tên). Still at this time there is no explicit way to delete databases, so that method was the best way for us to simply our unit tests cleanup

  • John Dyer nói.

    Tôi đã thực hiện một số thử nghiệm trên Web SQL và thấy rằng Chrome được mã hóa cứng để giới hạn cơ sở dữ liệu ở mức 5 MB, trong khi Safari và Opera sẽ hỏi người dùng xem họ có muốn cho phép cơ sở dữ liệu tăng lên không

    Đối với thử nghiệm của mình, tôi đã cố gắng tải toàn bộ Tân Ước tiếng Hy Lạp (khoảng 137.000 từ) với hình thái học của nó. This allows the user to do a lot of complex queries without stressing the server (I’ve only built a few due to the space limits). bạn có thể thấy nó ở đây. http. //www. ứng dụng web kinh thánh. com/websql/

  • Giới thiệu Cơ sở dữ liệu Web SQL. Bác sĩ HTML5 – sql nói.

    […] http. //html5doctor. com/introducing-web-sql-databases/API cơ sở dữ liệu Web SQL thực sự không phải là một phần của đặc tả HTML5, nhưng nó là một phần của […]

  • Basic LISP commands and their syntax. . Life of the IT-Drummer . Common Lisp WebDev Insider says.

    […] Giới thiệu Cơ sở dữ liệu Web SQL. HTML5 Doctor […]

  • Remy Sharp nói.

    @Mark – I see the demo showing relative time ranging from seconds to hours – perhaps a glitch in the Matrix?

    @Stuart Jones – một câu trả lời đơn giản (trong số nhiều câu trả lời khác). going offline. Vì cái này được đưa vào trình duyệt nên nó sẽ hoạt động mà không cần kết nối

    @Mors – ha, vâng, tôi có thể nói về nhiều điều nữa – tôi muốn giữ cho bài viết có độ dài vừa phải;)

    @John – thử nghiệm hữu ích, chúc mừng. I know you’ve posted to the Chromium group, so hopefully they’ll fix that bad boy. Không có ý nghĩa gì khi đạt đến giới hạn cứng

  • Kris Zyp says.

    The Web SQL Database API has essentially been abandoned by the W3C in favor of the Indexed DB API. Có thể là kịp thời và thú vị để đề cập đến thông số cơ sở dữ liệu mà W3C hiện đang làm việc. http. //www. w3. org/TR/IndexedDB/

  • Remy Sharp nói.

    @Kris – are there any implementations of the Indexed DB API (I didn’t think there were – and we’re much more interested in writing tutorials that people can see working in live browsers). Nhưng cổ vũ cho việc chỉ ra nó

  • Mèo ăn lời. Một bộ sưu tập các ghi chú dự án. nói.

    […] in a “that doesn’t look crazy at all” sort of way. I found out about it from The HTML5 Doctors. You can now create SQL databases on the user’s local […]

  • HTML 5 Dr – Web SQL says.

    […] http. //html5doctor. com/introducing-web-sql-databases   0 Comments Leave A Response […]

  • cyberdog says.

    Nice, was just getting into that with my own iPhone App. But – I’ve found that these run asynchronously, which can lead to unexpected results. I’m generally used to PHP’s database calls, which wait for the server to return a result before carrying on. Is there a way to make these transactions wait until done, or do you have to make a long chain of callback functions?

    (On same vein. Javascript doesn’t have a “sleep” or “wait” function, does it? . ( Even in HTML5? If it did, then maybe a wrapper for the SQL transactions could be made to make it behave synchronously…)

  • Remy Sharp nói.

    @cyberdog – there’s no method to tell JavaScript to block (sleep/wait) – so in a word. no. The queries (inserts and selects) queue and run asynchronously. If you check out the Twitter time range example you can see how my code ensures that all the data has been run in before allowing the time range selects to work – even though the transactions run asynchronously. At first I found it a little odd – like you my SQL background was serverside and blocking, but once you get the hang of the idea of queued transactions it’s pretty simple

  • cyberdog says.

    @Remy – Alright, thanks for confirming that. I can work around it with various call-backs and such (and thanks for example), it is just a little weird to get used to as you say. . )

    I just didn’t want to resort to a wasteful “do… while” loop while waiting on the transaction to end… it’s a shame, though, it’d be useful to have some blocking method so an efficient wrapper could be made. Oh well. . )

  • HTML5. Introducing Web SQL Databases « Web Page Authority Blog says.

    […] Introducing Web SQL Databases . HTML5 Doctor The Web SQL database API isn’t actually part of the HTML5 specification, but it is part of the suite of specifications that allows us developers to build fully fledged web applications, so it’s about time we dig in and check it out. […]

  • Daily Digest for February 27th . Nhiều Hơn Trầy Xước Bề Mặt nói.

    […] Shared Introducing Web SQL Databases . HTML5 Doctor. […]

  • Cheap Website Hosting. Do You Get What You Pay For? says.

    […] Giới thiệu Cơ sở dữ liệu Web SQL. HTML5 Doctor […]

  • Web SQL databases on Client side . Abhishek Tech Blog says.

    […] Full description is available at html5doctor. […]

  • Web SQL databases « KoppiePeest says.

    […] Voor een introductie, zie. http. //html5doctor. com/introducing-web-sql-databases/. […]

  • Anton says.

    In transaction as base of ‘executeSql’ use ‘tx’ argument. What this argument mean? Can I use defined above ‘db’ or not?

  • Adam Boarman's dot com » Blog Archive » Your Questions Answered #7 says.

    […] parts of HTML5, like Web SQL Databases and , are essentially JavaScript APIs. They may not cut down on your need for […]

  • Shaun Abram » Blog Archive » HTML5 talk at Google Technology User Group says.

    […] side database and can involve asynchronous transactions for a more responsive user experience. http. //html5doctor. com/introducing-web-sql-databases/ […]

  • The Past, Present & Future of Local Storage for Web Applications . ItPak. net nói.

    […] Giới thiệu Cơ sở dữ liệu Web SQL […]

  • 5 mẹo sử dụng HTML5 ngay hôm nay. Blog của Gene Loparco nói.

    […] cơ sở dữ liệu javascript (SQLite), bạn có thể lưu trữ dữ liệu toàn diện và phức tạp hơn cần thiết cho […]

  • ericmiraglia. com » Sự phát triển của ứng dụng web (R) năm 2010. HTML5 và hơn thế nữa (Tài nguyên) nói.

    […] Lưu trữ SQL trên máy khách (demo; hướng dẫn/giới thiệu) […]

  • Fernando nói.

    Về phần phiên bản, những gì tôi phát hiện ra là trong các trình duyệt webkit, bạn có thể thay đổi phiên bản, tuy nhiên, bạn cần làm mới trình duyệt để thực hiện các giao dịch tiếp theo với cơ sở dữ liệu
    Thấy
    http. // nhà phát triển. táo. com/library/safari/#documentation/iPhone/Conceptual/SafariJSDatabaseGuide/UsingtheJavascriptDatabase/UsingtheJavascriptDatabase. html%23//apple_ref/doc/uid/TP40007256-CH3-SW2

  • Norma nói.

    Tôi thắc mắc về Chèn lệnh gọi lại. tôi có mã như vậy

    db. Giao dịch (
    chức năng (giao dịch) {
    Giao dịch. thực thiSql(
    'CHÈN VÀO myNums(num1, num2, num3) GIÁ TRỊ (?,?,?);',
    [tuổi, số lần lặp lại, lượng calo],
    hàm số(){
    refreshEntries();
    jQT. quay lại();
    },
    /errorHandler
    );
    }
    );
    trả về sai;
    }

    Điều này không hoạt động. Nếu tôi xóa các cuộc gọi lại, việc chèn sẽ xảy ra. Nếu tôi di chuyển các cuộc gọi lại đến trước khi quay lại, refreshEntries sẽ xảy ra và quay lại khiến trang tải lại, thêm một phần chèn khác vào cơ sở dữ liệu

    Không có chức năng gọi lại cho phần chèn?

    Thanks,
    bình thường

  • 5 điều thú vị nhất về HTML5 « Blog của Pinyadda. Blog khởi nghiệp truyền thông nói.

    […] về những cách mà gói đổi mới này đang làm cho trình duyệt web của bạn mạnh mẽ hơn rất nhiều. Những thứ như bộ nhớ cục bộ (cho phép các ứng dụng web sử dụng trình duyệt, thay vì máy chủ của riêng chúng, để lưu […]

  • Nhà phát triển nói.

    Cơ sở dữ liệu được lưu trữ ở đâu trong máy khách. và làm cách nào chúng tôi có thể thay đổi vị trí của cùng một vị trí do người dùng xác định mới

  • ioconnor nói.

    Đây là một ví dụ tuyệt vời. Sqlite hiện là cơ chế duy nhất, có thể trong 10 năm tới, cho phép các ứng dụng trình duyệt phía máy khách mở rộng quy mô

    Có bất kỳ kế hoạch nào để viết một loạt bài báo thảo luận về các chủ đề như xử lý lỗi mạnh mẽ, gọi lại không đồng bộ cũng như những khó khăn và vướng mắc khi viết các ứng dụng phía máy khách lớn như Opera và Sqlite không?

    Không có nhiều về những chủ đề này và sẽ thật tuyệt nếu tìm thấy tất cả ở đây tại một nơi…

  • Zakaria nói.

    @rem. Tôi đang cố mở một cơ sở dữ liệu sqlite hiện có bằng chức năng “openDatabase”
    Nó không thể tải nó. Nó có bình thường không?
    Nếu có, tôi có thể tiêm một “. sql” chứa tập lệnh sql cho phép tạo bảng với một số phần chèn vào cơ sở dữ liệu được tạo bằng chức năng “openDatabase”?
    cảm ơn

  • Plnodi nói.

    Trong Ghi chú của Nhóm làm việc W3C ngày 18 tháng 11 năm 2010 nói rằng
    Beware. Thông số kỹ thuật này không còn được bảo trì tích cực và Nhóm làm việc về ứng dụng web không có ý định bảo trì thêm
    Cơ sở dữ liệu Web Sql đã CHẾT ??????

    Cho tôi biết ý kiến ​​của bạn
    Cảm tạ
    xin lỗi

  • Pratush nói.

    Chào mọi người,

    Tôi là người mới trong html5 và javascript
    Tôi đang làm việc trên ứng dụng web cho điện thoại thông minh (iphone, Android). Tôi đang gặp phải một số vấn đề về chèn/cập nhật giá trị trong cơ sở dữ liệu của trình duyệt
    i. e

    var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
    db.transaction(function (tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
      tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
    });
    3

    db. giao dịch (chức năng (tx) {
    tx. execSql('CHÈN/CẬP NHẬT. ’, [], hàm(tx, rs) {
    alert("Thành công/Thất bại");
    .............
    }
    });
    trong một thời gian db. giao dịch bị bỏ qua và do đó, dữ liệu không được lưu trong cơ sở dữ liệu
    Vui lòng cho tôi biết nếu có gì đó sai trong mã hoặc cách khác để thực hiện việc này
    Tôi thực sự bị mắc kẹt trong vấn đề này

    Cảm ơn trước

  • Pratush nói.

    Chào mọi người,

    Tôi là người mới trong html5 và javascript
    Tôi đang làm việc trên ứng dụng web cho điện thoại thông minh (iphone, Android). Tôi đang gặp phải một số vấn đề về chèn/cập nhật giá trị trong cơ sở dữ liệu của trình duyệt
    i. e

    var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
    db.transaction(function (tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
      tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
    });
    3

    db. giao dịch (chức năng (tx) {
    tx. execSql('CHÈN/CẬP NHẬT. ’, [], hàm(tx, rs) {
    alert("Thành công/Thất bại");
    .............
    }
    });
    trong một thời gian db. giao dịch bị bỏ qua và do đó, dữ liệu không được lưu trong cơ sở dữ liệu
    Vui lòng cho tôi biết nếu có gì đó sai trong mã hoặc cách khác để thực hiện việc này
    Tôi thực sự bị mắc kẹt trong vấn đề này
    Làm ơn giúp tôi
    Cảm ơn trước

  • HTML5 and Browser Caching. Part 2 « Geo Development says.

    […] interested in getting your feet wet there’s a great article on how to use Web SQL Database at HTML5 Doctor . Nó bao gồm việc tạo và kết nối với cơ sở dữ liệu, truy vấn và xử lý kết quả cũng như […]

  • Sam Dutton nói.

    Tự quảng cáo một cách trơ trẽn, nhưng tôi đã tạo tiện ích mở rộng của Chrome, sử dụng Cơ sở dữ liệu Web SQL để đánh dấu mã thời gian video HTML và ghi lại các khung hình. http. //bit. ly/framegrabberTiện ích mở rộng

    Điều làm tôi ấn tượng là khả năng cơ sở dữ liệu xử lý nhanh chóng và đáng tin cậy các URL dữ liệu, mà (trong trường hợp này) là các chuỗi có tối đa 200.000 ký tự trở lên

    Chrome có thể lưu trữ và truy xuất URL dữ liệu cực kỳ nhanh chóng và đặt chúng làm thuộc tính src cho hình ảnh

    Tôi đủ lớn để nhớ những ngày mà JavaScript còn chậm hơn rất nhiều, vì vậy những thứ như thế này vẫn khiến tôi ngạc nhiên

  • Ray Browning nói.

    Tôi là người mới ở đây trong vùng đất HTML5. Tôi thực sự thích công nghệ Cơ sở dữ liệu Web SQL của bạn

    Tôi đang cố gắng xây dựng một ứng dụng rất đơn giản

    Tôi cần truy xuất dữ liệu từ SQL Server DB của chúng tôi và đưa dữ liệu đó vào Web SQL DB. Hiện tại, tôi đã có thể lấy dữ liệu từ SQL Server DB của chúng tôi bằng PHP và đọc dữ liệu từ Web SQL DB cục bộ bằng Javascript

    Tôi đang tìm cách tải dữ liệu SQL Server vào Web SQL DB nhưng dường như tôi không thể tìm thấy câu trả lời trong các nhóm tin tức

    Bạn có thể giúp một ông già ra ngoài?

    Cảm ơn tất cả công việc khó khăn của bạn, chúng tôi thực sự đánh giá cao nó

  • Ray Browning nói.

    Pratush,

    tôi cũng mới

    I didn’t know if you found a solution to your insert problem
    Đây là những gì tôi đang làm và nó có vẻ hiệu quả

    function onCreateCompany()
    {
    var sNo = tài liệu. itemForm. Công tyKhông. giá trị;
    var sName = document. itemForm. Tên công ty. giá trị;
    nếu (sKhông == “”. sName == “”)
    {
    //hiển thị thông báo “Lỗi. 'Số công ty' và 'Tên công ty' là các trường bắt buộc. ”;
    }
    khác
    {
    var query = “INSERT INTO Companies (Company_No, Name) VALUES (?, ?);”;
    cố gắng
    {
    localDB. transaction(function(transaction)
    {
    Giao dịch. executeSql(query, [sNo, sName], function(transaction, results)
    {
    nếu (. results. rowsAffected)
    {
    // display a message “Error. không thể chèn dữ liệu. ”;
    }
    khác
    {
    // Hiển thị thông báo “Đã chèn hàng. ” + kết quả. chènId;
    }
    }, trình xử lý lỗi);
    });
    }
    catch (e)
    {
    // hiển thị thông báo “Lỗi. Không thể thêm dữ liệu. ” + e + ” ” + truy vấn + “. ”);
    }
    }
    }

  • Sam Dutton nói.

    @Ray Nâu

    > Tôi cần truy xuất dữ liệu từ SQL Server DB của chúng tôi và đưa dữ liệu đó vào Web SQL DB. Hiện tại, tôi đã có thể lấy dữ liệu từ SQL Server DB của chúng tôi bằng PHP và đọc dữ liệu từ Web SQL DB cục bộ bằng Javascript

    > Tôi đang tìm cách tải dữ liệu SQL Server vào Web SQL DB nhưng dường như tôi không thể tìm thấy câu trả lời trong các nhóm tin tức

    Tôi không chắc cách tốt nhất để làm điều này, nhưng bạn có thể
    – export your SQL Server data to and XML or JSON file
    – lấy tệp XML hoặc JSON bằng AJAX từ một trang web
    – phân tích cú pháp dữ liệu và lưu trữ nó trong cơ sở dữ liệu phía máy khách

    Tôi không biết liệu có kế hoạch cho cơ sở dữ liệu phía máy khách 'xây dựng sẵn' có thể tải xuống hay không

  • Ray Browning nói.

    Tôi nhận thấy rằng WebSQL là một cách rất hay và dễ dàng để làm việc với dữ liệu trên thiết bị cục bộ MÀ KHÔNG CÀI ĐẶT BẤT CỨ THỨ GÌ

    Sẽ thật tuyệt khi thấy ai đó tiếp tục công việc trên WebSQL và tiếp tục phát triển

  • webaloman nói.

    Về phiên bản

    nếu bạn mở phiên bản w/o

    var db = openDatabase(‘mydb’, ”, ‘cơ sở dữ liệu đầu tiên của tôi’, 2 * 1024 * 1024);

    sau đó bạn có thể lấy phiên bản hiện tại (nếu DB tồn tại) bằng cách
    db. phiên bản

    và sau đó tùy chọn thực hiện changeVersion

  • Bộ binh nói.

    Xin chào,

    Tôi có một câu hỏi nhanh đó là

    Sự khác biệt giữa SQL Server 2008 và Web SQL là gì ???

  • Remy Sharp nói.

    @Infanty – một là SQL Server 2008 và cái còn lại dựa trên SQLite 3. 6. 19. Vì vậy, bạn có thể tìm hiểu thêm về SQLite từ tài liệu của họ. http. //www. sqlite. tổ chức/

  • Bộ binh nói.

    @ tiến sĩ. Remy Sharp. Câu hỏi của tôi là. Tôi có thể thay thế máy chủ SQL 2008 thành web sql không ??

    web sql là gì ??

  • Remy Sharp nói.

    1. Không – Web SQL là công nghệ *phía máy khách*. SQL Server 2008 – Tôi sẽ nhảy vọt và đoán đó là phía máy chủ

    2. Xem bài viết phía trên những bình luận này

    3. Nó được đưa vào trình duyệt của bạn nếu bạn đang sử dụng Safari, Chrome hoặc Opera

    4. Phụ thuộc vào trường hợp kinh doanh của bạn. Google sử dụng nó để duy trì Gmail trên nền tảng di động để lưu trữ tất cả dữ liệu liên hệ và email (chủ đề, nội dung, v.v.)

  • Bộ binh nói.

    @ tiến sĩ. Remy Sharp. Cảm ơn thông tin của bạn

    Câu hỏi cuối cùng của tôi là liệu chúng tôi có thể thực hiện sao lưu hoặc mọi thứ chúng tôi làm trong máy chủ SQL 2008 không??

  • Ustuka Doyran nói.

    Xin chào
    nhập khẩu được không. csv vào cơ sở dữ liệu web-sqlite?
    Nếu có, xin vui lòng hiển thị với mẫu

  • kiểm tra nói.

    Có thể chia sẻ db giữa hai ứng dụng web không?

  • Ray Browning nói.

    Tôi biết rằng dự án đã ngừng hoạt động nhưng có một số người trong số chúng tôi ở đây đang sử dụng nó và yêu thích WebDB

    Tôi nghe nói rằng Google đang sử dụng một số nội dung WebDB cho GMail ngoại tuyến?

    Tôi không biết làm nhưng có ai nghĩ đến việc viết một plugin cho IE hoặc Fire Fox không. Tôi có những người dùng sử dụng IE và muốn tận dụng lợi thế của công nghệ

    Tôi đã có thể tải dữ liệu vào các hộp tổ hợp “Chọn” từ SQL Server bằng PHP và cũng ghi lại bằng PHP. Không có WebDB trên máy khách, công việc ngoại tuyến sẽ không thể thực hiện được

    cảm ơn bác sĩ

    cá đuối

  • karthikraja nói.

    Bài đăng hay. Tôi nghi ngờ về kích thước Cơ sở dữ liệu Web SQL. Bạn có thể vui lòng cho tôi biết cách xử lý khi vượt quá kích thước đã cho không. Vui lòng cho tôi biết quy trình mở rộng bộ nhớ đã cho. Tôi đang làm việc trên trình duyệt iPhone, Android và Blackberry…. Cảm ơn trước …

  • Andy Blum nói.

    Tôi rất buồn vì điều này sẽ không phải là một phần của thông số kỹ thuật chính thức. Đối với tôi, đây dường như là một giải pháp lý tưởng để giảm tải công việc cho PC cục bộ để cơ sở dữ liệu tập trung không bị quá tải. Tôi có thể hình dung các ứng dụng quy trình công việc phức tạp trong đó trạng thái db được khởi tạo khi bắt đầu phiên thông qua REST. Trạng thái cũng có thể được gửi đến máy chủ tập trung vào cuối phiên thông qua REST

  • PG nói.

    Xin chào,

    Bạn có thể cho tôi biết làm cách nào để biết có bao nhiêu byte dữ liệu trong db webSQL của tôi không. Tôi cần kiểm tra xem các trình duyệt khác nhau có thể hỗ trợ bao nhiêu byte dữ liệu. Tôi cần tìm kích thước tính bằng byte cho cơ sở dữ liệu webSQL

  • Lũ khốn nói.

    PG@ không biết cách tính dung lượng cơ sở dữ liệu. Nhưng đối với trình duyệt thì bạn không cần lo lắng vì khi gọi window. cơ sở dữ liệu mở(. ,. ,. , maxMemory), khi bắt đầu, bạn chỉ cần đặt kích thước ban đầu của bộ nhớ. Nếu cơ sở dữ liệu cần thêm bộ nhớ sau đó, thì trình duyệt sẽ tự động hiển thị hộp thoại cho biết cơ sở dữ liệu của bạn cần bộ nhớ. và khi bạn bấm vào nút “Ok” thì trình duyệt sẽ tự động tăng bộ nhớ

  • PG nói.

    Cảm ơn Prats vì phản hồi của bạn. Chỉ muốn xác nhận xem điều này có đúng với trình duyệt di động dành cho BB, Android và iphone safari không?

  • Lũ khốn nói.

    Vâng…

  • gaurav v bagga nói.

    Xin chào,
    Tôi thắc mắc về các vấn đề bảo mật, chẳng hạn như tôi có thể dễ dàng xem qua mã SQL của bạn. Các cách khác nhau để mã SQL có thể được bảo vệ để nó không dễ truy cập là gì
    Một điều tôi có thể nghĩ ra là mã hóa nhưng chỉ muốn quan điểm của bạn

  • Ray Browning nói.

    > Chào,
    >Tôi thắc mắc về các vấn đề bảo mật, giống như tôi có thể dễ dàng truy cập>thông qua mã SQL của bạn. Các cách khác nhau mà mã SQL có thể> được bảo vệ để nó không dễ truy cập là gì
    >Một điều tôi có thể nghĩ ra là mã hóa nhưng chỉ muốn quan điểm của bạn >quan điểm
    Có lẽ điều tốt nhất cần làm là giới hạn dữ liệu ở phía SQL bằng cách sử dụng chế độ xem và bảo mật

  • nói.

    Tôi đã thử sử dụng cơ sở dữ liệu web sql. Trong mã của tôi, tôi thực hiện cuộc gọi opendatabase tại thời điểm người dùng đăng nhập. Và khi người dùng tiếp tục, tôi sẽ chèn một số dữ liệu vào db này và nhận thấy rằng dữ liệu đang được lưu. Nếu người dùng đăng xuất và đăng nhập lại, tôi nhận thấy db được tạo lại, dẫn đến mất dữ liệu được lưu trữ trước đó. Điều gì có thể là lý do cho điều đó?

  • osc2nuke nói.

    tôi muốn tất cả những ai gắn bó với webdb, hãy cung cấp javascript xuất sắc này để chèn. tập tin sql. http. //html5sql. com/chỉ mục. html trong môi trường web

  • DS nói.

    Ai đó có thể vui lòng hướng dẫn tôi về việc dữ liệu được lưu trữ trong cơ sở dữ liệu web sql có liên tục không?

    Tôi đã tạo một cơ sở dữ liệu và sau đó thêm một số bản ghi vào đó. Tôi không thể truy cập cơ sở dữ liệu qua bất kỳ trang nào khác chứng minh khái niệm “cùng nguồn gốc”

    Nhưng nếu tôi cần truy cập lại cơ sở dữ liệu để trích xuất dữ liệu thì tôi phải làm như thế nào?

    Hãy giúp tôi. Cảm ơn bạn

  • Ray Browning nói.

    Toàn bộ ý tưởng của WebDB là để nó tồn tại. Tôi không chắc tại sao cơ sở dữ liệu của bạn lại biến mất. Chúng tôi sử dụng đoạn mã sau và nó có vẻ hoạt động. Bạn có chắc là trình duyệt của bạn hỗ trợ nó?

    nếu (localDB==null)
    {
    var shortName = ‘MyDB’;
    phiên bản var = '1. 0’;
    var displayName = ‘MyDatabase’;
    var kích thước tối đa = 65536;
    localDB = cửa sổ. openDatabase(tên ngắn, phiên bản, tên hiển thị, kích thước tối đa);
    }

    nếu (. cửa sổ. openDatabase)
    {
    DisplayMyError(“Trình duyệt bạn đang sử dụng không hỗ trợ điều này. Google Chrome được khuyên dùng. ”);
    }
    khác
    {
    ProcessSomeData();
    }

  • onlywebpro nói.

    Vào ngày 18 tháng 11 năm 2010, W3C đã thông báo rằng cơ sở dữ liệu Web SQL là một đặc tả không dùng nữa. Đây là khuyến nghị dành cho các nhà phát triển web không sử dụng công nghệ này nữa vì thông số kỹ thuật sẽ không nhận được bản cập nhật mới nào và các nhà cung cấp trình duyệt không được khuyến khích hỗ trợ công nghệ này

    Trân trọng,

    Quản lý của onlyWebPro. com

  • onlywebpro nói.

    Nhà phát triển nên sử dụng IndexedDB để phát triển ứng dụng web sắp tới

  • Jumaru nói.

    Tôi hơi bối rối về một điều. Vì execSql chạy không đồng bộ nên điều đó không có nghĩa là chạy

    var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
    db.transaction(function (tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
      tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
    });
    5


    sẽ tạo ra kết quả không mong muốn nếu phần chèn chạy trước khi bảng tạo chạy ???

    var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
    db.transaction(function (tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
      tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
    });
    6

  • andodew nói.

    có thể sử dụng cơ sở dữ liệu bên ngoài?

  • Sanchit nói.

    Thành viên tôn trọng,
    Tôi đang có máy chủ cơ sở dữ liệu và đang cố chèn dữ liệu từ tài liệu HTML5 của mình vào Máy chủ SQL. Sử dụng các mã quy định, tôi thậm chí không thể kết nối với cơ sở dữ liệu của mình. Làm thế nào tôi nên viết mã cho vấn đề. Nội dung trang đăng ký của tôi như sau…

    Đăng ký trong HTML5

    var fname = tài liệu. getElementById(“txtFirstName”);
    var lname = tài liệu. getElementById(“txtLastName”);
    var giới tính = tài liệu. getElementById(“giới tính”);
    địa chỉ var = tài liệu. getElementById(“txtarAddress”);
    var emailid = tài liệu. getElementById(“emailID”);
    var dob = tài liệu. getElementById(“DOB”);
    var create = “TẠO BẢNG NẾU KHÔNG TỒN TẠI REGUSINGHTML5(RegID INT ,FirstName TEXT,LastName TEXT,Gender TEXT, Address TEXT, EmailID TEXT, DateOfBirth TEXT, Primarykey(RegID))”;
    var insert = “CHÈN VÀO ĐĂNG KÝHTML5 (Văn bản Tên, Văn bản Họ, Văn bản Giới tính, Văn bản Địa chỉ, Văn bản ID Email, Văn bản Ngày sinh) GIÁ TRỊ (?, ?,?,?,?,?”;
    Tạo nên();
    chức năng Tạo () {
    var db=cửa sổ. openDatabase('Mẫu','10. 0. 1600. 22′,'HTML5 Reg',2*1024*1024);

    db. giao dịch(chức năng (tx){

    tx. execSql(tạo);
    });
    cảnh báo ("Cơ sở dữ liệu đã tạo")
    }
    hàm Chèn () {
    var db = openDatabase('Mẫu', '10. 0. 1600. 22’, ‘HTML5 Reg’, 2 * 1024 * 1024);

    db. giao dịch(chức năng (tx) {

    tx. execSql(insert, [fname. giá trị, tên. giá trị, giới tính. mục, địa chỉ. giá trị, địa chỉ email. giá trị, dob. giá trị]);
    });
    alert(“Cơ sở dữ liệu đã chèn”);
    }

    MẪU ĐĂNG KÝ TRỰC TUYẾN

    Tên đầu tiên

    Họ

    Giới tính

    Nam giới
    Giống cái

    Địa chỉ nhà

    ID email

    Ngày sinh

    Chèn vào DB

    –>

    Ngoài ra, tôi đang sử dụng SQL Server 2008. Hãy giúp tôi ra

    Cám ơn bạn

    Sanchit Choubey

  • Wytze nói.

    Trên thực tế, Safari có hỗ trợ changeVersion (ít nhất là trên máy tính Windows của tôi), nhưng có một nhược điểm. bạn phải cung cấp NĂM đối số nếu không nó sẽ thất bại

    Tranh luận
    1. phiên bản dự kiến
    2. phiên bản mới
    3. gọi lại giao dịch (bạn có thể thực thi SQL tại đây như một phần của thay đổi phiên bản)
    4. gọi lại thất bại (nếu thay đổi phiên bản hoặc gọi lại giao dịch không thành công)
    5. gọi lại thành công (nếu thay đổi phiên bản và gọi lại giao dịch thành công)

    Tôi chưa thử nghiệm tính năng này trên thiết bị iOS nhưng nó phù hợp với thông số kỹ thuật của Safari được cung cấp tại đây

  • Remy Sharp nói.

    @Wytze – lol. Bạn nói "thực ra" như thể bạn đang sửa lỗi cho tôi. Lưu ý rằng bài viết đã được viết hơn 2 năm trước – đó là trạng thái hiện tại

    Cảm ơn bạn đã thử nghiệm hỗ trợ mới nhất và cung cấp thông tin mới nhất

  • Andrew nói.

    Cơ sở dữ liệu web SQL có được gắn với một miền cụ thể như LocalStorage không?

  • Andrew nói.

    Mặc dù đặc tả web SQL không còn được phát triển nữa, web SQL dường như là giải pháp dữ liệu liên tục duy nhất cho cả thiết bị iOS và Android được hỗ trợ với một cơ sở mã, ngoài lưu trữ cục bộ

    Và lưu trữ cục bộ trên thiết bị iOS dường như không ổn định một cách đáng tin cậy sau bản cập nhật cuối cùng

  • MR nói.

    Hi, I am using websql in my mobile app, I am using around 12-13 tables. Lúc đầu, tôi tạo các bảng này, nhưng vấn đề là khi tôi khởi động ứng dụng lần đầu tiên, chỉ có 6-7 bảng được tạo và dừng ở đó. Không có lỗi, không có thất bại. Chỉ dừng lại ở đó. bạn có thể giúp tôi với đó

  • Ray Browning nói.

    Chào buổi sáng WebDB

    Có thể lấy một phần bổ trợ hoặc Polyfill mà chúng tôi có thể đưa vào HTML của mình để tải WebDB không?

    I saw that the good doctor Remy had something on https. //ý chính. github. com/350433

    Tôi chưa có thời gian để xem lại mã. Đây có phải là điều chúng ta có thể làm không?
    Tôi ước tôi biết 1/10 những gì bác sĩ vĩ đại biết

    Thanks

  • Alesha Fernandes nói.

    var db = openDatabase(‘mydb’, ‘1. 0’, ‘cơ sở dữ liệu đầu tiên của tôi’, 2 * 1024 * 1024);

    cơ sở dữ liệu trên 'mydb' được tạo trong SQL Server hoặc MYSQL, vui lòng cho tôi biết cơ sở dữ liệu này được tạo ở đâu. Hay chúng ta cần một js để giữ thông tin cơ sở dữ liệu. Cần biết điều này khẩn cấp cho dự án của tôi

    • Bruce Lawson nói.

      It’s created in the browser. It uses SQLite. http. // vi. wikipedia. org/wiki/SQLite

  • Vaibhav nói.

    Độ dài ký tự tối đa của truy vấn SQL trong Web SQL mà tôi có thể vượt qua là bao nhiêu?

  • Làm cách nào để tải dữ liệu JSON vào các bảng Web SQL thông qua một URL trong iOS?. Cộng đồng Android - Phát triển ứng dụng nói.

    […] Introducing webSQL databases […]

  • Lluís Segura nói.

    Xin chào,

    is it possible to accés to WebSQL database with any php library?

    Thanks

  • Tobe nói.

    Cảm ơn bạn, điều này đã giúp tôi rất nhiều. Tôi mới sử dụng javascript và tôi thường phụ thuộc rất nhiều vào mã như mã ở đây trong các dự án của tôi để hướng dẫn cho tôi một chút

  • nery nói.

    hi,
    I’m starting to use the database of chrome but i have a problem about the foreign keys, these are not actives
    tôi đã đọc một tài liệu sqlite và tôi cần thực hiện lệnh này
    “PRAGMA Foreign_keys = boolean;”
    nhưng tôi không biết làm thế nào trong javascript. tôi đã thử sử dụng chức năng của bạn

    var db = openDatabase(‘mydb’, ‘1. 0’, ‘cơ sở dữ liệu đầu tiên của tôi’, 2 * 1024 * 1024);
    db. giao dịch(chức năng (tx) {
    tx. execSql(‘PRAGMA Foreign_keys = boolean’);
    });

    nhưng không hoạt động…

    Bạn co thể giup tôi được không??

    cảm ơn

  • nery nói.

    db. giao dịch(chức năng (tx) {
    tx. execSql(‘PRAGMA Foreign_keys = ON’);
    });

  • bardu nói.

    Tôi không quen sử dụng WebSQL hay SQLite, tuy nhiên, chúng tôi có một trường hợp sử dụng mà chúng tôi cần tải SQLite DB xuống máy tính bảng Android và tìm nạp dữ liệu qua JavaScript

    Liệu chúng tôi có thể mở DB đã tải xuống này qua openDatabase không (. ) hay DB phải được tạo bởi WebSQL?

    Cảm ơn trước

    Stephan

  • Hướng dẫn toàn diện để chơi trò chơi HTML5 ngoại tuyến. Người chơi HTML5 nói.

    […] API tiếp theo là Cơ sở dữ liệu Web SQL. Cơ sở dữ liệu Web SQL là cơ sở dữ liệu phía máy khách cho phép bạn lưu trữ thông tin cho máy khách theo cùng một cách […]

  • Umesh nói.

    hi,
    Tôi đang sử dụng cơ sở dữ liệu sqlite với phonegap
    tôi gặp vấn đề về khóa ngoại

    ‘PRAGMA Foreign_keys = ON;’

    cái đó. db. giao dịch (chức năng (tx) {
    cái đó. db. execSql(‘PRAGMA Foreign_keys = ON’);

    }

    cũng tx. execSql(‘PRAGMA Foreign_keys = ON’);

    bất kỳ ai có thể giúp tôi ra ???

  • Keerthi Kumar nói.

    cách lưu các giá trị bảng cơ sở dữ liệu sql trong indexeddb bằng html 5

    Xin chào các chuyên gia html5

    Khi tải trang html5, tôi muốn tìm nạp các giá trị từ bảng cơ sở dữ liệu sql
    và phải lưu trữ trong indexeddb bằng html5 (hoạt động hoàn toàn ngoại tuyến)
    Khi nhấp vào nút gửi, tôi muốn lưu bằng kết nối cơ sở dữ liệu (thao tác trực tuyến)

    Ví dụ. Tôi phải bảng cơ sở dữ liệu huyện và taluk
    Bây giờ Đang tải đang tải quận và sau khi chọn quận một lần nữa, tôi đang gửi yêu cầu tới
    máy chủ và tìm nạp taluk, sẽ mất nhiều thời gian để tránh điều này đang sử dụng phương pháp này
    nhưng tôi chưa quen với khái niệm này, có ai có thể vui lòng giúp tôi giải quyết vấn đề này không?

    cảm ơn trước
    (Kerthi Kumar)

  • Just. a. guy says.

    Tôi vừa đọc xong bài viết giới thiệu đầu tiên của mình về indexedDB
    Tôi thấy giao diện indexedDB quá phức tạp
    Tôi nhận ra nhu cầu gọi lại. Có vẻ như mục tiêu của nó là để
    nhúng tất cả công việc không đồng bộ vào đại lý DOM

    Đối với tôi, nỗ lực mã hóa này có thể đã được xử lý
    đồng bộ hơn trong chuỗi nhân viên web và
    sau đó được chuyển trở lại tác nhân DOM thông qua
    nhắn tin gọi lại

    Tôi thấy giao diện Web SQL hợp lý hơn
    Tuy nhiên, giao diện Web SQL không được dùng nữa

    Xấu hổ làm sao

  • mohsen nói.

    Xin chào,
    Tôi là người mới bắt đầu sử dụng HTML5
    Chúng tôi có thể chuyển đổi cơ sở dữ liệu SQL web HTML5 sang máy chủ SQL hoặc cơ sở dữ liệu truy cập không?

    Cảm ơn bạn,
    Mohsen

  • Alin nói.

    Cơ sở dữ liệu SQLite 'mydb' sẽ được lưu trữ ở đâu? . db’. Xin hãy giúp tôi về điều đó

    SQL có được sử dụng với HTML không?

    Bạn có thể tạo HTML từ SQL vì SQL Server có hỗ trợ tích hợp sẵn để xuất XML và HTML được hiểu đúng nhất là một phương ngữ hơi kỳ lạ của XML truyền đạt ý nghĩa cho các thẻ được xác định trước.

    SQL trong HTML là gì?

    SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc .

    Sự khác biệt giữa HTML và SQL là gì?

    HTML. Một ngôn ngữ đánh dấu. Điều này chỉ đại diện cho trang web của bạn. PHP. A server side programming language. SQL. Ngôn ngữ truy vấn để truy vấn tới DB .

    Làm cách nào để chạy SQL trong HTML?

    Đối với điều này, bạn cần làm theo các bước sau. .
    Bước 1. Filter your HTML form requirements for your contact us web page. .
    Bước 2. Tạo cơ sở dữ liệu và bảng trong MySQL. .
    Bước 3. Tạo biểu mẫu HTML để kết nối với cơ sở dữ liệu. .
    Bước 4. Tạo một trang PHP để lưu dữ liệu từ dạng HTML vào cơ sở dữ liệu MySQL của bạn. .
    Bước 5. Tất cả đã được làm xong