Kết nối mysql với javascript

answer

28

Kết nối mysql với javascript

Không, JavaScript không thể kết nối trực tiếp với MySQL. Nhưng bạn có thể kết hợp JS với PHP để làm như vậy.

JavaScript là ngôn ngữ phía máy khách và cơ sở dữ liệu MySQL của bạn sẽ chạy trên máy chủ

28 hữu ích 5 bình luận chia sẻ

answer

87

Kết nối mysql với javascript

JavaScript phía máy khách không thể truy cập MySQL mà không có một số loại cầu nối. Nhưng các tuyên bố in đậm ở trên rằng JavaScript chỉ là ngôn ngữ phía máy khách là không chính xác - JavaScript có thể chạy phía máy khách và phía máy chủ, như với Node.js.

Node.js có thể truy cập MySQL thông qua một cái gì đó như https://github.com/sidorares/node-mysql2

Bạn cũng có thể phát triển thứ gì đó bằng Socket.IO

Ý của bạn là hỏi liệu một ứng dụng JS phía máy khách có thể truy cập MySQL không? Tôi không chắc liệu những thư viện như vậy có tồn tại hay không, nhưng chúng có thể.

CHỈNH SỬA : Kể từ khi viết, bây giờ chúng ta có MySQL Cluster :

Trình điều khiển JavaScript cụm MySQL cho Node.js nghe giống như nó - nó là một trình kết nối có thể được gọi trực tiếp từ mã JavaScript của bạn để đọc và ghi dữ liệu của bạn. Vì nó truy cập trực tiếp vào các nút dữ liệu, không có thêm độ trễ khi truyền qua Máy chủ MySQL và cần phải chuyển đổi từ mã // đối tượng JavaScript thành các hoạt động SQL. Nếu vì lý do nào đó, bạn muốn nó chuyển qua Máy chủ MySQL (ví dụ: nếu bạn đang lưu trữ các bảng trong InnoDB) thì có thể định cấu hình.

  • JSDB cung cấp một giao diện JS cho các DB.

  • Một tập hợp các gói DB được quản lý cho Node.js từ sindresorhus.

87 hữu ích 0 bình luận chia sẻ

answer

53

Kết nối mysql với javascript

Nếu bạn muốn kết nối với cơ sở dữ liệu MySQL bằng JavaScript, bạn có thể sử dụng Node.js và một thư viện có tên là mysql . Bạn có thể tạo truy vấn và nhận kết quả dưới dạng một mảng thanh ghi. Nếu bạn muốn thử, bạn có thể sử dụng trình tạo dự án của tôi để tạo chương trình phụ trợ và chọn MySQL làm cơ sở dữ liệu để kết nối. Sau đó, chỉ cần hiển thị điểm cuối REST API hoặc GraphQL mới của bạn và bắt đầu làm việc với cơ sở dữ liệu MySQL của bạn.


CÂU TRẢ LỜI CŨNG TRÁI BẰNG NOSTALGIA

SAU ĐÓ

Khi tôi hiểu câu hỏi và sửa cho tôi nếu tôi sai, nó đề cập đến mô hình máy chủ cổ điển chỉ với JavaScript ở phía máy khách. Trong mô hình cổ điển này, với ĐÈN máy chủ (Linux, Apache, MySQL, PHP) ngôn ngữ trong tiếp xúc với cơ sở dữ liệu là PHP, như vậy để yêu cầu dữ liệu vào cơ sở dữ liệu bạn cần phải viết PHP kịch bản và tiếng vang dữ liệu trở lại cho khách hàng. Về cơ bản, sự phân bố của các ngôn ngữ theo máy vật lý là:

  1. Phía máy chủ: PHP và MySQL.
  2. Phía khách hàng: HTML / CSS và JavaScript.

Điều này trả lời cho một mô hình MVC (Model, View, Controller) trong đó chúng tôi có chức năng sau:

  1. MÔ HÌNH: Mô hình là những gì xử lý dữ liệu, trong trường hợp này là các tập lệnh PHP quản lý các biến hoặc truy cập dữ liệu được lưu trữ, trong trường hợp này là trong cơ sở dữ liệu MySQL của chúng tôi và gửi nó dưới dạng dữ liệu JSON cho máy khách.
  2. XEM: Chế độ xem là những gì chúng ta nhìn thấy và nó phải hoàn toàn độc lập với mô hình. Nó chỉ cần hiển thị dữ liệu có trong mô hình, nhưng nó không nên có dữ liệu liên quan trên đó. Trong trường hợp này, chế độ xem sử dụng HTML và CSS. HTML để tạo cấu trúc cơ bản của khung nhìn và CSS để tạo hình dạng cho cấu trúc cơ bản này.
  3. BỘ ĐIỀU KHIỂN: Bộ điều khiển là giao diện giữa mô hình của chúng tôi và chế độ xem của chúng tôi. Trong trường hợp này, ngôn ngữ được sử dụng là JavaScript và nó lấy dữ liệu mà mô hình gửi cho chúng tôi dưới dạng gói JSON và đặt nó bên trong các vùng chứa cung cấp cấu trúc HTML. Cách bộ điều khiển tương tác với mô hình là sử dụng AJAX . Chúng tôi sử dụng các phương thức GET và POST để gọi các tập lệnh PHP ở phía máy chủ và để bắt dữ liệu trả về từ máy chủ.

Đối với bộ điều khiển, chúng tôi có các công cụ thực sự thú vị như jQuery , như thư viện "cấp thấp" để kiểm soát cấu trúc HTML (DOM) và sau đó là các công cụ mới, cấp cao hơn như Knockout.js cho phép chúng tôi tạo các trình quan sát kết nối các Các phần tử DOM cập nhật chúng khi các sự kiện xảy ra. Ngoài ra còn có Angular.js của Google hoạt động theo cách tương tự, nhưng dường như là một môi trường hoàn chỉnh. Để giúp bạn lựa chọn trong số chúng, ở đây bạn có hai phân tích tuyệt vời về hai công cụ: Knockout so với Angular.js và Knockout.js so với Angular.js . Tôi vẫn đang đọc. Hy vọng họ sẽ giúp bạn.

HIỆN NAY

Trong các máy chủ hiện đại dựa trên Node.js, chúng tôi sử dụng JavaScript cho mọi thứ. Node.js là một môi trường JavaScript với nhiều thư viện hoạt động với Google V8, Chrome JavaScript engine. Cách chúng tôi làm việc với các máy chủ mới này là:

  1. Node.js và Express : Máy tính lớn nơi máy chủ được xây dựng. Chúng ta có thể tạo một máy chủ với một vài dòng mã hoặc thậm chí sử dụng các thư viện như Express để tạo máy chủ dễ dàng hơn. Với Node.js và Express, chúng tôi sẽ quản lý các kiến ​​nghị tới máy chủ từ các máy khách và sẽ trả lời chúng bằng các trang thích hợp.
  2. Jade : Để tạo các trang, chúng tôi sử dụng ngôn ngữ tạo khuôn mẫu, trong trường hợp này là Jade, cho phép chúng tôi viết các trang web như khi chúng tôi viết HTML nhưng có sự khác biệt (mất một chút thời gian nhưng rất dễ học). Sau đó, trong mã của máy chủ để trả lời các kiến ​​nghị của khách hàng, chúng tôi chỉ cần kết xuất mã Jade thành một mã HTML "thực".
  3. Stylus : Tương tự như Jade nhưng dành cho CSS. Trong trường hợp này, chúng tôi sử dụng chức năng phần mềm trung gian để chuyển đổi tệp bút cảm ứng thành tệp CSS thực cho trang của chúng tôi.

Sau đó, chúng tôi có rất nhiều gói mà chúng tôi có thể cài đặt bằng NPM (trình quản lý gói Node.js) và sử dụng chúng trực tiếp trong máy chủ Node.js của chúng tôi chỉ cần yêu cầu nó (đối với những bạn muốn học Node.js, hãy thử hướng dẫn dành cho người mới bắt đầu này để có một cái nhìn tổng quan). Và trong số các gói này, bạn có một số gói để truy cập cơ sở dữ liệu. Bằng cách sử dụng này, bạn có thể sử dụng JavaScript ở phía máy chủ để truy cập cơ sở dữ liệu SQL của tôi.

Nhưng điều tốt nhất bạn có thể làm nếu định làm việc với Node.js là sử dụng cơ sở dữ liệu NoSQL mới như MongoDB , dựa trên các tệp JSON. Thay vì lưu trữ các bảng như MySQL, nó lưu trữ dữ liệu trong các cấu trúc JSON, vì vậy bạn có thể đặt các dữ liệu khác nhau bên trong mỗi cấu trúc như các vectơ số dài thay vì tạo các bảng lớn với kích thước lớn nhất.

Tôi hy vọng lời giải thích ngắn gọn này trở nên hữu ích với bạn và nếu bạn muốn tìm hiểu thêm về điều này, bạn có thể sử dụng một số tài nguyên ở đây:

  • Egghead : Trang web này có đầy đủ các hướng dẫn ngắn tuyệt vời về JavaScript và môi trường của nó. Nó đáng để thử. Và giảm giá theo thời gian.
  • Code School : Với một khóa học miễn phí và rất thú vị về các công cụ dành cho nhà phát triển Chrome để giúp bạn kiểm tra phía máy khách.
  • Codecademy : Với các khóa học miễn phí về HTML, CSS, JavaScript, jQuery và PHP mà bạn có thể theo dõi với các ví dụ trực tuyến.
  • 10gen Education : Với mọi thứ bạn cần biết về MongoDB trong các hướng dẫn cho các ngôn ngữ khác nhau.
  • W3Schools : Cái này có hướng dẫn về tất cả những điều này và bạn có thể sử dụng nó như một nơi tham khảo vì nó có rất nhiều ví dụ shortcode thực sự hữu ích.
  • Udacity : Một nơi có các khóa học video miễn phí về các chủ đề khác nhau với một số khóa học thú vị về phát triển web và tôi thích nhất, khóa học WebGL tuyệt vời dành cho đồ họa 3D với JavaScript.

Tôi hy vọng nó sẽ giúp bạn bắt đầu.

Chúc vui vẻ!

53 hữu ích 4 bình luận chia sẻ

answer

9

Kết nối mysql với javascript

Hơi muộn nhưng gần đây tôi đã phát hiện ra rằng MySql 5.7 có plugin http thông qua đó người dùng có thể kết nối trực tiếp với mysql ngay bây giờ.

Tìm Http Client cho mysql 5.7

9 hữu ích 0 bình luận chia sẻ

answer

8

Kết nối mysql với javascript

Tôi nghĩ rằng bạn sẽ cần thêm một cái gì đó như PHP vào phương trình. PHP để tương tác với cơ sở dữ liệu và sau đó bạn có thể thực hiện các cuộc gọi AJAX bằng Javascript.

8 hữu ích 0 bình luận chia sẻ

answer

7

Kết nối mysql với javascript

Câu trả lời đơn giản là: không.

JavaScript là ngôn ngữ phía máy khách chạy trong trình duyệt ( mặc dù có node.js ) và MySQL là một công nghệ phía máy chủ chạy trên máy chủ.

Điều đó có nghĩa là bạn thường sử dụng ngôn ngữ phía máy chủ như ASP.NET hoặc PHP để kết nối với cơ sở dữ liệu.

7 hữu ích 1 bình luận chia sẻ

answer

6

Kết nối mysql với javascript

ĐÚNG? Có một cái nhìn một sao băng. Liên kết:

http://meteor.com/screencast và http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/

Tôi không hiểu nó được thực hiện như thế nào. Nhưng Nettuts + đưa thứ này vào phần javascript-ajax, có thể điều kỳ diệu sẽ xảy ra.

Nó cũng chỉ ra một số cách để kết nối và chèn vào MongoDB bằng JS, như sau:

Products.insert({Name : "Hammer", Price : 4.50, InStock : true});
Products.insert({Name : "Wrench", Price : 2.70, InStock : true});
Products.insert({Name : "Screw Driver", Price : 3.00, InStock : false});
Products.insert({Name : "Drill", Price : 5.25, InStock : true});

6 hữu ích 2 bình luận chia sẻ

answer

5

Kết nối mysql với javascript

Đúng. Có một plugin HTTP cho MySQL.

http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/

Bây giờ tôi chỉ đang tìm kiếm thông tin về nó, điều này đã dẫn tôi đến câu hỏi về stackoverflow này. Bạn sẽ có thể AJAX cơ sở dữ liệu MySQL ngay bây giờ hoặc trong tương lai gần (họ cho rằng nó chưa sẵn sàng để sản xuất).

5 hữu ích 0 bình luận chia sẻ

answer

4

Kết nối mysql với javascript

Tùy thuộc vào môi trường của bạn, bạn có thể sử dụng Rhino để thực hiện việc này, hãy xem trang web Rhino . Điều này cho phép bạn truy cập vào tất cả các thư viện Java từ bên trong JavaScript.

4 hữu ích 0 bình luận chia sẻ

answer

2

Kết nối mysql với javascript

Thông thường, bạn cần một ngôn ngữ kịch bản phía máy chủ như PHP để kết nối với MySQL, tuy nhiên, nếu bạn chỉ thực hiện một mô hình nhanh, thì bạn có thể sử dụng http://www.mysqljs.com để kết nối với MySQL từ Javascript bằng cách sử dụng mã như sau:

MySql.Execute(
    "mysql.yourhost.com", 
    "username", 
    "password", 
    "database", 
    "select * from Users", 
    function (data) {
        console.log(data)
});

Cần phải đề cập rằng đây không phải là cách an toàn để truy cập MySql và chỉ phù hợp với các bản demo riêng tư hoặc các trường hợp mà người dùng cuối không thể truy cập mã nguồn, chẳng hạn như trong ứng dụng Phonegap iOS.

2 hữu ích 2 bình luận chia sẻ

answer

2

Kết nối mysql với javascript

Có bạn có thể. Các trình kết nối MySQL sử dụng TCP để kết nối và trong JS có một phiên bản sửa đổi nhỏ của ứng dụng khách TCP được gọi là Websocket. Nhưng bạn không thể kết nối trực tiếp với máy chủ MySQL bằng websocket. Bạn sẽ cần một số cầu nối của bên thứ 3 giữa websocket và mysql. Nó nhận truy vấn từ websocket, gửi đến mysql, trả lời kết quả và gửi lại JS.

Và đây là cầu nối ví dụ của tôi được viết bằng C # với thư viện websocket-sharp:

class JSQLBridge : WebSocketBehavior
{
    MySqlConnection conn;

    protected override void OnMessage(MessageEventArgs e)
    {
        if (conn == null)
        {
            try
            {
                conn = new MySqlConnection(e.Data);
                conn.Open();
            }
            catch (Exception exc)
            {
                Send(exc.Message);
            }
        }
        else
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand(e.Data, conn);
                cmd.ExecuteNonQuery();
                Send("success");
            }
            catch (Exception exc)
            {
                Send(exc.Message);
            }
        }
    }

    protected override void OnClose(CloseEventArgs e)
    {
        if (conn != null)
            conn.Close();
    }
}

JS bên:

var ws = new WebSocket("ws://localhost/");

ws.send("server=localhost;user=root;database=mydb;");

ws.send("select * from users");

2 hữu ích 0 bình luận chia sẻ

answer

1

Kết nối mysql với javascript

Bạn có thể gửi yêu cầu AJAX với một số server-side wrappers RESTful cho MySQL, như DBSlayer , PhpRestSQL hoặc AlsoSQL (đối với Mưa phùn , một ngã ba của MySQL).

1 hữu ích 0 bình luận chia sẻ

answer

0

Kết nối mysql với javascript

Không.

Bạn cần viết một trình bao bọc bằng PHP, sau đó xuất dữ liệu trả về (có thể là Json). ĐỪNG BAO GIỜ, lấy từ "_GET" mã SQL của bạn, vì đây được gọi là SQL injection (những người học được điều này sẽ có toàn quyền kiểm soát cơ sở dữ liệu của bạn).

Đây là một ví dụ tôi đã viết:

function getJsonData()
{
        global $db;
        if (!$db->isConnected()) {
               return "Not connected";
        }
        $db->query("SELECT * FROM entries");
        $values = array();
        while( $v = $db->fetchAssoc()){
                $values[] = $v;
        }
        return json_encode($values);    
}

switch (@$_GET["cmd"]){
        case 'data':
                print getJsonData();
                exit;

        default:
                print getMainScreen();
                exit; 
}

Vui lòng tìm hiểu về SQL injection.

0 hữu ích 0 bình luận chia sẻ

answer

0

Kết nối mysql với javascript

Bạn có thể kết nối với MySQL từ Javascript thông qua một applet JAVA. Ứng dụng JAVA sẽ nhúng trình điều khiển JDBC cho MySQL để cho phép bạn kết nối với MySQL.

Hãy nhớ rằng nếu bạn muốn kết nối với một máy chủ MySQL từ xa (không phải máy chủ mà bạn đã tải xuống applet từ đó), bạn sẽ cần yêu cầu người dùng cấp quyền mở rộng cho applet. Theo mặc định, applet chỉ có thể kết nối với máy chủ mà chúng được tải xuống.

0 hữu ích 0 bình luận chia sẻ

answer

0

Kết nối mysql với javascript

Nếu bạn không bị khóa trên MySQL, bạn có thể chuyển sang PostgreSQL. Nó hỗ trợ các thủ tục JavaScript (PL / V8) bên trong cơ sở dữ liệu. Nó rất nhanh và mạnh mẽ. Kiểm tra bài đăng này .

0 hữu ích 0 bình luận chia sẻ

answer

0

Kết nối mysql với javascript

JavaScript không thể kết nối trực tiếp với DB để nhận dữ liệu cần thiết nhưng bạn có thể sử dụng AJAX. Để thực hiện yêu cầu AJAX dễ dàng tới máy chủ, bạn có thể sử dụng khung jQuery JS http://jquery.com . Đây là một ví dụ nhỏ

JS:

jQuery.ajax({
type: "GET",
dataType: "json",
url: '/ajax/usergroups/filters.php',
data: "controller=" + controller + "&view=" + view,
success: function(json)
{
    alert(json.first);
    alert(json.second);
});

PHP:

$out = array(); 

// mysql connection and select query
$conn = new mysqli($servername, $username, $password, $dbname);


try {
  die("Connection failed: " . $conn->connect_error);

  $sql = "SELECT * FROM [table_name] WHERE condition = [conditions]";
  $result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    $out[] = [
       'field1' => $row["field1"],
       'field2' => $row["field2"]
    ];
  }
} else {
  echo "0 results";
}

} catch(Exception $e) {
  echo "Error: " . $e->getMessage();
}
    echo json_encode($out);

0 hữu ích 2 bình luận chia sẻ

answer

0

Kết nối mysql với javascript

Tất nhiên bạn có thể. Trong Nodejs, bạn có thể kết nối JavaScript phía máy chủ với MySQL bằng trình điều khiển MySQL. Nodejs-MySQL

0 hữu ích 0 bình luận chia sẻ

answer

-1

Kết nối mysql với javascript

Tôi đã hiểu câu hỏi của bạn Tôi nghĩ bạn đang nhầm lẫn nó với các ngôn ngữ như dot.net và java, nơi bạn có thể mở kết nối DB trong mã của mình. Không, JavaScript không thể kết nối trực tiếp với MySQL vì JavaScript là ngôn ngữ kịch bản phía máy khách (Exception Node.js). Bạn cần một lớp giữa như RESTful API để truy cập dữ liệu.

-1 hữu ích 0 bình luận chia sẻ

answer

-4

Kết nối mysql với javascript

Bạn có thể thêm kết nối mysql bằng cách sử dụng tệp PHP. Dưới đây là ví dụ về tệp PHP.

<?php
   $con = mysql_connect('localhost:3306', 'dbusername', 'dbpsw');
   mysql_select_db("(dbname)", $con);

   $sql="SELECT * FROM table_name";

   $result = mysql_query($sql);

   echo " <table border='1'>
   <tr>
   <th>Header of Table name</th>
   </tr>";

   while($row = mysql_fetch_array($result))
   {
     echo "<tr>";
     echo "<td>" . $row['(database_column_name)'] . "</td>";
     echo "<td>" . $row['database_column_name'] . "</td>";
     echo "</tr>";
    }
    echo "</table>";
    mysql_close($con);
   ?> }

-4 hữu ích 2 bình luận chia sẻ