Heim  >  Artikel  >  php教程  >  用php代码远程连接数据库,可实现BAE与SAE数据库互访

用php代码远程连接数据库,可实现BAE与SAE数据库互访

WBOY
WBOYOriginal
2016-06-06 20:07:46960Durchsuche

As ?we all know,无论是SAE或者BAE,都不支持链接外部数据库。仅支持跨应用访问。无论平台商是出于业务考虑还是安全考虑,数据库封闭多多少少让人觉得有点遗憾。尤其一些个人开发者,喜欢到各种服务器折腾,这个时候有个统一的数据库会非常方便。既可以充分

As ?we all know,无论是SAE或者BAE,都不支持链接外部数据库。仅支持跨应用访问。无论平台商是出于业务考虑还是安全考虑,数据库封闭多多少少让人觉得有点遗憾。尤其一些个人开发者,喜欢到各种服务器折腾,这个时候有个统一的数据库会非常方便。既可以充分利用各平台的优势进行开发,也可以方便地迁移。

Here comes my RemoveMysql. 通过接口实现跨数据库访问。RemoveMysql只适合小型开发,数据量大的时候,会严重受网络环境制约,可能会延迟很厉害。所以建议做小应用,不宜用于大应用环境。大应用建议自己写个完善的REST Server,或者换个支持传统方式访问数据库的远程服务器。By the way,使用RemoveMysql的时候注意网站安全,更改代码文件名和通信密匙以提高安全性。

下载地址:http://code.google.com/p/remove-mysql/downloads/list

下载后,有两个文件夹。Dbclient是本地端,Dbserver是服务器。它们的关系是:Dbclient访问Dbserver上的数据库。例如,你可以把Dbclient放在SAE的一个应用上,把Dbserver放在BAE某个应用上。通过配置,可以让SAE应用访问BAE数据库。反过来也行。下面讲讲怎么配置。

1、配置Dbserver

Dbserver文件夹就只有index.php一个单文件。文件开头是个$config数组,保存着配置信息。你需要根据实际情况,填充必要信息。包括通信密匙(由你自定义的,Dbclient会用到),数据库服务器地址、端口等等。对于普通php空间,则在后台面板cpanel一般会写着。下面我就说说SAE和BAE的。

对于SAE,由于数据库信息被预定义成常量,所以可以很统一。你可以直接复制我下面的信息(除通信密匙外)

$config=array(
 'secret'=>'your_secret', //填写通信密匙
 'host'=>SAE_MYSQL_HOST_M, //数据库服务器地址
 'port'=>SAE_MYSQL_PORT, //数据库服务器地址端口,
 'username'=>SAE_MYSQL_USER, //数据库用户名
 'password'=>SAE_MYSQL_PASS, //数据库密码
 'dbname'=>SAE_MYSQL_DB, //选择使用哪个数据库
 'charset'=>'utf8' //编码,默认utf8
);

对于BAE,也差不多,下面的供参考

$config=array(
 'secret'=>'your_secret', //填写通信密匙
 'host'=>getenv('HTTP_BAE_ENV_ADDR_SQL_IP'), //数据库服务器地址
 'port'=>getenv('HTTP_BAE_ENV_ADDR_SQL_PORT'), //数据库服务器地址端口
 'username'=>getenv('HTTP_BAE_ENV_AK'), //数据库用户名
 'password'=>getenv('HTTP_BAE_ENV_SK'), //数据库密码
 'dbname'=>'awdUdInfgjfCKUdVDHmA', //从平台获取查询要连接的数据库名称
 'charset'=>'utf8' //编码,默认utf8
);

特别指出,上面填写的’dbname’请从BAE后台查询。另外还要注意使用正确的数据库编码。不知道BAE默认编码现在还是不是GBK。总之是可以通过后台修改的。

2、使用Dbclient

index.php是个简单的调用示例。new Mysql()的时候需要两个参数:url和通信密匙。url即你的Dbserver端所在网址,通信密匙则是你在Dbserver端所定义的’secret’。至于详细的方法调用,请看MysqlClient.class.php的源码以及注释。如果封装的那些方法不够用,你可以根据你的实际情况,添加几个符合自己实际需要的操作方法

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn