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

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

WBOY
WBOYasal
2016-06-06 20:07:46986semak imbas

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的源码以及注释。如果封装的那些方法不够用,你可以根据你的实际情况,添加几个符合自己实际需要的操作方法

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn