JavaScript를 MySQL과 연결할 수 있습니까? 그렇다면 어떻게?
JavaScript를 MySQL과 연결할 수 있습니까? 그렇다면 어떻게?
답변:
아니요, JavaScript는 MySQL에 직접 연결할 수 없습니다. 그러나 JS와 PHP를 혼합하여 그렇게 할 수 있습니다.
JavaScript는 클라이언트 측 언어이며 MySQL 데이터베이스는 서버에서 실행됩니다.
클라이언트 측 JavaScript는 일종의 브리지 없이는 MySQL에 액세스 할 수 없습니다. 그러나 JavaScript가 클라이언트 측 언어라는 위의 굵은 문장은 올바르지 않습니다 .JavaScript는 Node.js와 마찬가지로 클라이언트 측과 서버 측에서 실행할 수 있습니다.
Node.js는 https://github.com/sidorares/node-mysql2 와 같은 것을 통해 MySQL에 액세스 할 수 있습니다.
Socket.IO를 사용하여 무언가를 개발할 수도 있습니다.
클라이언트 측 JS 앱이 MySQL에 액세스 할 수 있는지 물어 보려고 했습니까? 그러한 라이브러리가 있는지 확실하지 않지만 가능합니다.
편집 : 작성 이후로 이제 MySQL 클러스터가 있습니다 .
Node.js 용 MySQL Cluster JavaScript Driver는 마치 JavaScript 코드에서 직접 호출하여 데이터를 읽고 쓸 수있는 커넥터입니다. 데이터 노드에 직접 액세스하기 때문에 MySQL 서버를 통과 할 때 추가 대기 시간이 없으며 JavaScript 코드 // 개체에서 SQL 작업으로 변환해야합니다. 어떤 이유로 MySQL 서버를 통과하는 것을 선호한다면 (예를 들어 InnoDB에 테이블을 저장하는 경우) 구성 할 수 있습니다.
JSDB 는 DB에 JS 인터페이스를 제공합니다.
(A)는 DB 패키지 세트 큐레이터 sindresorhus에서 Node.js를 위해.
JavaScript를 사용하여 MySQL 데이터베이스에 연결하려는 경우 Node.js와 mysql 이라는 라이브러리를 사용할 수 있습니다 . 쿼리를 생성하고 레지스터 배열로 결과를 얻을 수 있습니다. 시도해보고 싶다면 내 프로젝트 생성기 를 사용하여 백엔드를 만들고 연결할 데이터베이스로 MySQL 을 선택할 수 있습니다. 그런 다음 새 REST API 또는 GraphQL 엔드 포인트를 전면에 노출 하고 MySQL 데이터베이스 작업을 시작하면됩니다.
NOSTALGIA가 남긴 오래된 답변
그때
질문을 이해하고 내가 틀렸다면 정정하기 때문에 클라이언트 측에서만 JavaScript를 사용하는 클래식 서버 모델을 참조합니다. 이 클래식 모델에서 LAMP 서버 (Linux, Apache, MySQL, PHP)에서 데이터베이스와 접촉하는 언어는 PHP 였으므로 데이터베이스에 데이터를 요청하려면 PHP 스크립트를 작성 하고 반환 데이터를 클라이언트에 에코 해야합니다. 기본적으로 물리적 기계에 따른 언어 분포는 다음과 같습니다.
이것은 다음과 같은 기능이있는 MVC 모델 (모델,보기, 컨트롤러)에 응답했습니다.
컨트롤러의 경우 HTML 구조 (DOM)를 제어하기위한 "저수준"라이브러리 인 jQuery 와 같은 흥미로운 도구가 있으며 , 그 다음에 는 서로 다른 연결 관찰자를 생성 할 수있는 Knockout.js 와 같은 새롭고 고급 수준의 도구가 있습니다. 이벤트가 발생할 때 DOM 요소를 업데이트합니다. 비슷한 방식으로 작동하지만 완전한 환경 인 것처럼 보이는 Google의 Angular.js 도 있습니다. 그중 하나를 선택하는 데 도움이되도록 Knockout 대 Angular.js 및 Knockout.js 대 Angular.js 두 도구에 대한 두 가지 훌륭한 분석이 있습니다. 나는 아직도 읽고있다. 그들이 당신을 돕길 바랍니다.
지금
Node.js를 기반으로하는 최신 서버에서는 모든 것에 JavaScript를 사용합니다. Node.js는 Google V8, Chrome JavaScript 엔진에서 작동하는 많은 라이브러리가있는 JavaScript 환경입니다. 이러한 새 서버를 사용하는 방법은 다음과 같습니다.
그리고 우리는 우리가 사용하여 설치할 수있는 패키지를 많이 가지고 NPM (Node.js를 패키지 관리자를) 그냥 Node.js를 배우고 싶은 당신의 사람들을 위해 (그것을 필요로하는 우리의 Node.js를 서버에 직접 사용을,이 시도 초보자 튜토리얼 개요). 그리고 이러한 패키지 중 일부는 데이터베이스에 액세스 할 수 있습니다. 이를 사용하면 서버 측에서 JavaScript를 사용하여 My SQL 데이터베이스에 액세스 할 수 있습니다.
그러나 Node.js로 작업하려는 경우 할 수있는 최선의 방법은 JSON 파일을 기반으로하는 MongoDB 와 같은 새로운 NoSQL 데이터베이스를 사용하는 것 입니다. MySQL과 같은 테이블을 저장하는 대신 JSON 구조로 데이터를 저장하므로 가장 큰 테이블 크기에 대한 거대한 테이블을 만드는 대신 긴 숫자 벡터와 같이 각 구조 내에 다른 데이터를 넣을 수 있습니다.
이 간단한 설명이 도움이 되었기를 바랍니다. 이에 대해 자세히 알아 보려면 여기에 사용할 수있는 몇 가지 리소스가 있습니다.
시작하는 데 도움이 되었기를 바랍니다.
즐기세요!
조금 늦었지만 최근에 MySql 5.7이 http 플러그인을 통해 사용자가 mysql에 직접 연결할 수 있음을 발견했습니다.
mysql 5.7 용 Http 클라이언트 찾기
간단한 대답은 아니오입니다.
JavaScript는 브라우저에서 실행되는 클라이언트 측 언어 ( node.js 에도 불구하고)이고 MySQL은 서버에서 실행되는 서버 측 기술입니다.
즉, 일반적으로 ASP.NET 또는 PHP와 같은 서버 측 언어를 사용하여 데이터베이스에 연결합니다.
예? 유성을보세요. 연결:
http://meteor.com/screencast 및 http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
나는 그것이 어떻게 행해지는지 이해하지 못한다. 그러나 Nettuts +는 이것을 javascript-ajax 섹션에 넣습니다. 마술이 일어날 수도 있습니다.
또한 다음과 같이 JS로 MongoDB에 연결하고 삽입하는 방법을 보여줍니다.
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});
환경에 따라 Rhino를 사용하여이 작업을 수행 할 수 있습니다 . Rhino 웹 사이트를 참조하십시오 . 이를 통해 JavaScript 내에서 모든 Java 라이브러리에 액세스 할 수 있습니다.
예. MySQL 용 HTTP 플러그인이 있습니다.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
나는 지금 그것에 대해 인터넷 검색을하고 있어이 stackoverflow 질문으로 이어졌습니다. 현재 또는 가까운 장래에 MySQL 데이터베이스를 AJAX 할 수 있어야합니다 (프로덕션 준비가되지 않았다고 주장함).
일반적으로 MySQL에 연결하려면 PHP와 같은 서버 측 스크립팅 언어가 필요하지만 간단한 모형을 작성하는 경우 http://www.mysqljs.com 을 사용하여 다음과 같은 코드를 사용하여 Javascript에서 MySQL에 연결할 수 있습니다 . 다음과 같습니다.
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
이것은 MySql에 액세스하는 안전한 방법이 아니며 비공개 데모 또는 Phonegap iOS 앱과 같이 최종 사용자가 소스 코드에 액세스 할 수없는 시나리오에만 적합하다는 점을 언급해야합니다.
var strSrc = "http://mysqljs.com/sql.aspx?";
그래 넌 할수있어. MySQL 커넥터는 연결을 위해 TCP를 사용하고 JS에는 Websocket이라는 TCP 클라이언트의 약간 수정 된 버전이 있습니다. 그러나 websocket을 사용하여 MySQL 서버에 직접 연결할 수 없습니다. websocket과 mysql 사이에 타사 브리지가 필요합니다. websocket에서 쿼리를 받아 mysql로 보내고 응답 결과를 JS로 다시 보냅니다.
그리고 이것은 websocket-sharp 라이브러리를 사용하여 C #으로 작성된 예제 브리지입니다.
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 측 :
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
아니.
PHP로 래퍼를 작성한 다음 반환 된 데이터 (아마 Json)를 내 보내야합니다. 절대로 "_GET"에서 SQL 코드를 가져 오십시오.이를 SQL 인젝션이라고합니다 (이를 배우는 사람은 데이터베이스를 완전히 제어 할 수 있습니다).
이것은 내가 쓴 예입니다.
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;
}
SQL 주입에 대해 배우십시오.
MySQL에 잠겨 있지 않은 경우 PostgreSQL로 전환 할 수 있습니다. 데이터베이스 내에서 JavaScript 프로 시저 (PL / V8)를 지원합니다. 매우 빠르고 강력합니다. 이 게시물을 확인하십시오 .
JavaScript는 필요한 데이터를 얻기 위해 DB에 직접 연결할 수 없지만 AJAX를 사용할 수 있습니다. 서버에 쉽게 AJAX 요청을하려면 jQuery JS 프레임 워크 http://jquery.com을 사용할 수 있습니다 . 다음은 작은 예입니다.
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);
PHP 파일을 사용하여 mysql 연결을 추가 할 수 있습니다. 다음은 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);
?> }
Can JavaScript connect with MySQL?
입니다.