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 Clusterがあります:
Node.js用のMySQL Cluster JavaScriptドライバーは、それがどのようなものであるかを示しています。これは、JavaScriptコードから直接呼び出してデータを読み書きできるコネクターです。データノードに直接アクセスするため、MySQLサーバーを通過することによる余分なレイテンシはなく、JavaScriptコード//オブジェクトからSQL操作に変換する必要があります。何らかの理由で、MySQLサーバーを通過したい場合(たとえば、テーブルをInnoDBに格納している場合)、それを構成できます。
JSDBはDBへのJSインターフェースを提供します。
DBパッケージのキュレーションセット sindresorhusからNode.jsのため。
JavaScriptを使用してMySQLデータベースに接続する場合は、Node.jsとmysqlというライブラリを使用できます。クエリを作成し、結果をレジスターの配列として取得できます。試してみたい場合は、私のプロジェクトジェネレーターを使用してバックエンドを作成し、接続するデータベースとしてMySQLを選択します。次に、新しいREST APIまたはGraphQLエンドポイントを前面に表示して、MySQLデータベースの操作を開始します。
ノスタルジアによる古い回答
その後
私は質問を理解し、私が間違っている場合は修正するので、クライアント側でのみJavaScriptを使用する従来のサーバーモデルを指します。この古典的なモデルでは、LAMPサーバー(Linux、Apache、MySQL、PHP)では、データベースと接触する言語はPHPでした。そのため、データベースにデータをリクエストするには、PHPスクリプトを記述し、返されたデータをクライアントにエコーする必要があります。基本的に、物理マシンによる言語の分布は次のとおりです。
これは、次の機能を備えたMVCモデル(モデル、ビュー、コントローラー)に答えました。
コントローラには、HTML構造(DOM)を制御するための「低レベル」ライブラリとしてjQueryなどの非常に興味深いツールがあり、次に、Knockout.jsとして新しく、より高レベルなツールを使用して、さまざまな方法で接続するオブザーバを作成できます。イベント発生時にそれらを更新するDOM要素。同様に機能するが完全な環境のように見えるGoogleのAngular.jsもあります。それらの中から選択するのを助けるために、2つのツールの2つの優れた分析があります。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のWebサイトを参照してください。これにより、JavaScript内からすべてのJavaライブラリにアクセスできます。
はい。MySQL用のHTTPプラグインがあります。
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
私は今それについてグーグルで調べているだけで、このスタックオーバーフローの質問に私を導きました。現在または近い将来に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として)エクスポートする必要があります。これは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インジェクションについて学んでください。
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?
。