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にアクセスできるかどうかを尋ねるつもりですか?そのようなライブラリが存在するかどうかはわかりませんが、可能です。
EDIT:執筆以来、今では MySQL Cluster :
Node.js用のMySQL Cluster JavaScriptドライバーは、見た目だけです。JavaScriptコードから直接呼び出してデータを読み書きできるコネクターです。データノードに直接アクセスするため、MySQLサーバーを通過する際の余分な遅延はなく、JavaScriptコード//オブジェクトからSQL操作に変換する必要があります。何らかの理由で、MySQLサーバーを通過したい場合(たとえば、InnoDBにテーブルを保存している場合)、それを設定できます。
JSDB は、DBへのJSインターフェイスを提供します。
DBパッケージのキュレーションセット sindresorhusのNode.jsの場合。
その後
私は質問を理解し、間違っている場合は修正しますが、それはクライアント側でのみJavaScriptを使用したクラシックサーバーモデルを指します。 LAMPサーバー(Linux、Apache、MySQL、PHP)を使用したこの古典的なモデルでは、データベースに接続する言語はPHPであるため、 PHPスクリプトとechoを記述する必要があるデータベースへのデータクライアントへのデータ。基本的に、物理マシンによる言語の分布は次のとおりです。
これは、次の機能があるMVCモデル(モデル、ビュー、コントローラー)に応答します。
コントローラーには、HTML構造(DOM)を制御するための「低レベル」ライブラリーとしての jQuery のような非常に興味深いツールがあり、さらに Knockout.js これにより、イベント発生時にそれらを更新するさまざまなDOM要素を接続するオブザーバーを作成できます。 Angular.js もあります。これは同様の方法で機能しますが、完全な環境のようです。どちらかを選択できるように、2つのツールの2つの優れた分析があります: Knockout vs. Angular.js および Knockout.js vs. Angular.js 。私はまだ読んでいます。彼らがあなたを助けることを願っています。
NOW
Node.jsベースの最新のサーバーでは、すべてにJavaScriptを使用しています。 Node.jsは、Google V8、Chrome JavaScriptエンジンで動作する多くのライブラリを備えたJavaScript環境です。この新しいサーバーを使用する方法は次のとおりです。
次に、NPM(Node.jsパッケージマネージャー)を使用してインストールできるパッケージがたくさんありますNode.jsサーバーで直接それを必要とするだけです(Node.jsを学習したい人のために、これを試してください 初心者向けチュートリアル 概要について)。このパッケージの中には、データベースにアクセスするためのパッケージがいくつかあります。これを使用すると、サーバー側でJavaScriptを使用してMy SQLデータベースにアクセスできます。
しかし、Node.jsを使用する場合にできる最善の方法は、MongoDBのような新しいNoSQLデータベースを使用することです、JSONファイルに基づきます。 MySQLのようなテーブルを保存する代わりに、JSON構造にデータを保存します。そのため、最大のサイズの巨大なテーブルを作成する代わりに、長い数値ベクトルのように各構造内に異なるデータを配置できます。
この簡単な説明がお役に立てば幸いです。さらに詳しく知りたい場合は、ここに使用できるリソースがあります。
更新!
現在、Nodeサーバーがあり、MySQLデータベースと通信する場合は、mysql。 PHPで行ったようにクエリを作成でき、APIジェネレーターを使用して試すことができますNPMを使用してダウンロードできます。使用するデータベースなどを選択できるウィザードがあります。
開始に役立つことを願っています。
楽しむ!
少し遅れましたが、最近、MySQL 5.7がユーザーがmysqlに直接接続できるhttpプラグインを取得したことがわかりました。
Mysql 5.7のHttpクライアントを探します
PHPのようなものを方程式に追加する必要があると思います。 PHPを使用してデータベースとやり取りすると、Javascriptを使用してAJAX呼び出しを行うことができます。
簡単な答えは、いいえです。
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});
はい。 MySQL用のHTTPプラグインがあります。
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
私は今それについてグーグルで話しているだけで、このスタックオーバーフローの質問につながりました。現在または近い将来、MySQLデータベースをAJAXできるようになるはずです(本番の準備ができていないと主張しています)。
環境によっては、Rhinoを使用してこれを行うことができます。 Rhinoウェブサイト を参照してください。これにより、JavaScript内からすべてのJavaライブラリにアクセスできます。
DBSlayer 、 PhpRestSQL など、MySQLの一部のサーバー側RESTfulラッパーにAJAXリクエストを送信できます。または AlsoSQL (for Drizzle 、MySQLのフォーク)。
通常、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アプリ内などのエンドユーザーがソースコードにアクセスできないシナリオにのみ適していることに注意する必要があります。
はい、できます。 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");
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();
$out['first'] = 'first value';
$out['second'] = 'second value';
echo json_encode($out);
Javaアプレットを介してJavascriptからMySQLに接続できます。 Javaアプレットは、MySQLへの接続を可能にするMySQL用のJDBCドライバーを埋め込みます。
リモートMySQLサーバー(アプレットをダウンロードしたサーバー以外)に接続する場合は、ユーザーにアプレットへの拡張アクセス許可の付与を依頼する必要があることに注意してください。デフォルトでは、アプレットはダウンロード元のサーバーにのみ接続できます。
MySQLでロックされていない場合は、PostgreSQLに切り替えることができます。データベース内のJavaScriptプロシージャ(PL/V8)をサポートします。非常に高速で強力です。これを確認してください post 。
いや.
PHPでラッパーを作成し、返されたデータを(おそらくJsonとして)エクスポートする必要があります。これはSQLインジェクションと呼ばれるため、決して「_GET」から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インジェクションについて学んでください。