2

我正在创建一个网页,PHP 将定期写入 SQL 数据库。

有没有办法通过单击 HTML 页面上的不同链接来创建一个 Ruby on Rails 应用程序来访问/读取同一数据库?

4

5 回答 5

2

每个流行的数据库都旨在同时处理许多请求,这是数据库的主要特性和思想,否则它将具有糟糕的性能、速度和安全性:想象有人在那里写/读,所以其他人都应该等待?
语言只是连接和操作数据库的工具:语言仍然使用 SQL 语法,因此每种语言最终都会在 DB 中执行 SQL 语句。所以回答你的问题:语言根本不重要。

于 2013-05-14T21:38:22.720 回答
2

对的,这是可能的。但请记住,Rails 有一个在应用程序级别强制约束和完整性的约定。这意味着如果您有一个名为 users 的表,并且您已经设置了 User 模型来验证用户必须有一个电子邮件地址,那么这个约束只适用于您的 Rails 应用程序。

因此,您必须确保您的 PHP 应用程序不会以导致 Rails 应用程序故障的方式操作数据库。例如插入一个没有电子邮件地址的用户。

于 2013-05-14T21:48:04.933 回答
1

是的,只需根据您使用的技术堆栈使用适当的 API。

我建议在数据库端为每个解决方案使用单独的用户名,以便在读取服务器数据库日志时进行区分。

于 2013-05-14T21:28:16.453 回答
-1

是的,这是可能的。在大多数情况下,数据库独立于应用程序。任何可以连接到数据库并发送有效 sql 的应用程序都可以连接到它。

例如,假设您有一个与 sql server 数据库交互的 php 网站。如果您的计算机上安装了另一个应用程序 Management Studio,并且您拥有权限,则可以连接到该数据库并运行查询。

对于同一个数据库,如果我有连接凭据,我可以编写一个 ColdFusion 或 .net 网页来查询它。数据库不关心调用它的应用程序。它只关心权限和有效的sql。

于 2013-05-14T22:48:30.723 回答
-2

您可以在 Rails 应用程序中使用模型,例如transactions

class Transaction < ActiveRecord::Base
  attr_accessible :price, :product
end

然后在您的 中config/database.yml,您可以将数据库的配置编写为:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  database: development
  host: 11.111.11.11 # any host name
  port: 3306
  username: username
  password: password

test:
  ...

记得把mysql2宝石放在你的Gemfile

从 PHP 端,您可以像往常一样连接到该数据库:

<?php

$link = mysql_connect('11.111.11.11', 'username', 'password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// select correct db for environment
$db_selected = mysql_select_db('development', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$sql = "SELECT * FROM transactions";
$results = mysql_query($sql);
// ...
?>    
于 2013-05-14T22:38:53.890 回答