我正在创建一个网页,PHP 将定期写入 SQL 数据库。
有没有办法通过单击 HTML 页面上的不同链接来创建一个 Ruby on Rails 应用程序来访问/读取同一数据库?
我正在创建一个网页,PHP 将定期写入 SQL 数据库。
有没有办法通过单击 HTML 页面上的不同链接来创建一个 Ruby on Rails 应用程序来访问/读取同一数据库?
每个流行的数据库都旨在同时处理许多请求,这是数据库的主要特性和思想,否则它将具有糟糕的性能、速度和安全性:想象有人在那里写/读,所以其他人都应该等待?
语言只是连接和操作数据库的工具:语言仍然使用 SQL 语法,因此每种语言最终都会在 DB 中执行 SQL 语句。所以回答你的问题:语言根本不重要。
对的,这是可能的。但请记住,Rails 有一个在应用程序级别强制约束和完整性的约定。这意味着如果您有一个名为 users 的表,并且您已经设置了 User 模型来验证用户必须有一个电子邮件地址,那么这个约束只适用于您的 Rails 应用程序。
因此,您必须确保您的 PHP 应用程序不会以导致 Rails 应用程序故障的方式操作数据库。例如插入一个没有电子邮件地址的用户。
是的,只需根据您使用的技术堆栈使用适当的 API。
我建议在数据库端为每个解决方案使用单独的用户名,以便在读取服务器数据库日志时进行区分。
是的,这是可能的。在大多数情况下,数据库独立于应用程序。任何可以连接到数据库并发送有效 sql 的应用程序都可以连接到它。
例如,假设您有一个与 sql server 数据库交互的 php 网站。如果您的计算机上安装了另一个应用程序 Management Studio,并且您拥有权限,则可以连接到该数据库并运行查询。
对于同一个数据库,如果我有连接凭据,我可以编写一个 ColdFusion 或 .net 网页来查询它。数据库不关心调用它的应用程序。它只关心权限和有效的sql。
您可以在 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);
// ...
?>